【发布时间】:2019-12-20 11:53:44
【问题描述】:
我想用 jQuery 异步上传文件。
$(document).ready(function () {
$("#uploadbutton").click(function () {
var filename = $("#file").val();
$.ajax({
type: "POST",
url: "addFile.do",
enctype: 'multipart/form-data',
data: {
file: filename
},
success: function () {
alert("Data Uploaded: ");
}
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<span>File</span>
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>
我只获取文件名,而不是上传文件。我该怎么做才能解决这个问题?
【问题讨论】:
-
有各种现成的 jQuery 文件上传插件。进行这种上传技巧并不是一种愉快的体验,因此人们喜欢使用现成的解决方案。这里有几个: - JQuery File Uploader - Multiple File Upload Plugin - Mini Multiple File Upload - jQuery File Upload 您可以在 NPM(使用“jquery-plugin”作为关键字)或 Github 上搜索更多项目。
-
你只得到文件名,因为你的 var 文件名得到 $('#file') 的值,而不是输入中的文件
-
这是一个不错的选择:http://blueimp.github.io/jQuery-File-Upload/ - HTML5 ajax 上传 - 为不受支持的浏览器优雅地回退到 iframe - 多文件异步上传 我们已经使用它并且效果很好。 (Documentation here)
-
检查这个:stackoverflow.com/questions/6974684/…,这里解释了如何通过 jQuery 实现它
-
@Jimmy 他将如何获取输入中的文件?
标签: javascript jquery ajax asynchronous xmlhttprequest