我被這個ajax 的excel檔案上傳這兩天搞得都沒心情寫畢設了,最侄訓是跑來論壇問問前端大佬們吧。。
這是我的表單
<form id="uploadFile" method="post" action="/require/readExcel" enctype="multipart/form-data">
<input type="file" name="file_1" id="file_1" class="file-box" >
<input type="submit" value="https://bbs.csdn.net/topics/檔案上傳" onclick="upload()">
</form>
這樣直接寫,不用js的話我的后端是可以接收到上傳的檔案的,而且也回傳了我寫的狀態碼和訊息。
但是我想的是在點擊上傳的時候,需要確認上傳,然后顯示上傳結果。。
然后我就想著寫個js。
這是js
function upload() {
layer.confirm('確定上傳?', {
btn : [ '確定', '取消' ]
}, function() {
$.ajax({
type : "post",
url : "/require/readExcel",
data : $('#file_1')[0].files[0],
success : function(r) {
if (r.code === 0) {
layer.msg(r.msg);
reLoad();
} else {
layer.msg(r.msg);
}
}
});
})
}
但是我這樣寫了js之后,把上面的html里面的type從sumbit改成button,百度找答案,把entype改成content,后端又報.MultipartException: Current request is not a multipart request,。。。。。。。。。。
反正就是搞得我很煩,到現在還沒有成功,我現在就想著怎么樣在js里面通過ajax上傳到后端的檔案能夠別報Current request is not a multipart request,然后能通過layer.msg()回應以下我的后端傳回來的結果就成。。。
大佬們,救救孩子吧。。心態崩了 啊,,前端太搞了。
uj5u.com熱心網友回復:
有時候人生就是這么戲劇,,,,我tm搞了這么久一直沒有解決。。。然后論壇上面發了個帖子,然后點擊了下面推薦的博客,,然后tm就突然間又成了!!!!我真的。。不想說話。。。uj5u.com熱心網友回復:
我知道原因在哪兒了!!!這一切都源于我自作聰明!!!!
js這樣寫就沒問題了
function upload() {
var file = $("#file_1")[0].files[0];
var formData = new FormData();
formData.append("file",file);
layer.confirm('確定上傳?', {
btn : [ '確定', '取消' ]
}, function() {
$.ajax({
type : "post",
url : "/require/readExcel",
data : formData,
processData:false,
contentType:false,
success : function(r) {
if (r.code === 0) {
layer.msg(r.msg);
// reLoad();
} else {
layer.msg(r.msg);
}
}
});
})
}
我直接在data后面給賦的值,沒有用到formData,看來這個formData應該是對表單資料做了封裝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/252363.html
標籤:Ajax
上一篇:Bootstrap-tables 頁面使用滾輪滑動很慢
下一篇:函式未定義怎么解決
