您好,登錄后才能下訂單哦!
本篇主要講的是ajax下的文件上傳
模板html文件內容
<form id="fileUploadForm">
<input type="file" name="file" id="file_input">
</form>
編寫文件上傳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;
}
});
}
服務器端視圖代碼如下
class FileUpload(View):
'''
文件上傳
'''
def post(self, request):
try:
file = request.FILES.get('file')
if(file.size >= 2097152):
# 當上傳文件大于2M時拋出異常
raise RuntimeError('fileSizeError')
except Exception as error:
print(error)
POST提交過來的文件需要使用request.FILES.get()去獲取,而不能直接使用request.POST.get()
非ajax文件上傳
需要為form表單添加enctype屬性,其值必須為multipart/form-data,請求方式依然為POST
<form id="fileUploadForm" enctype="multipart/form-data" method="POST">
<input type="file" name="file" id="file_input">
<input type="submit" value="提交">
</form>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。