本篇主要講的是ajax下的文件上傳
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供南寧網(wǎng)站建設(shè)、南寧做網(wǎng)站、南寧網(wǎng)站設(shè)計(jì)、南寧網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、南寧企業(yè)網(wǎng)站模板建站服務(wù),十多年南寧做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
模板html文件內(nèi)容
編寫文件上傳js
function upload(){
// ajax上傳文件
var file_input = $('#file_input');
if(file_input.val() == ''){
return false;
}
var formData = new FormData($('#fileupload_form')[0]);
$.ajax({
type : 'POST',
url : '/api/fileupload/',
data : formData,
dataType : 'json',
contentType : false,
processData : false,
success : function(data){
if(data.info){
console.log('文件上傳成功!');
return;
} else {
console.log('文件上傳失??!');
return false;
}
},
error : function(){
console.log('文件上傳失??!');
return false;
}
});
}
服務(wù)器端視圖代碼如下
class FileUpload(View):
'''
文件上傳
'''
def post(self, request):
try:
file = request.FILES.get('file')
if(file.size >= 2097152):
# 當(dāng)上傳文件大于2M時(shí)拋出異常
raise RuntimeError('fileSizeError')
except Exception as error:
print(error)
POST提交過來的文件需要使用request.FILES.get()去獲取,而不能直接使用request.POST.get()
非ajax文件上傳
需要為form表單添加enctype屬性,其值必須為multipart/form-data,請求方式依然為POST