要实现一个效果,上传这个文件夹中的所有的文件,我已经用vue-simple-upload这个插件实现了,但是现在是上传一个文件请求一次,怎么把它一个接口上传多个文件,求解。
用FormData加入你所有文件,一次性就能发送。但是如果文件大可能超出你服务器端的最大上传数据限制导致报错。。
FormData参考:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData
上传可以用ajax,但是需要注意FormData的处理,不能转键值对.
简单示例
<input type="file" multiple onchange="uploadfile(this)"/>
<script>
function uploadfile(f) {
var files = f.files, fd = new FormData()
for (var f of files) {
fd.append(f.name, f);
}
var xhr = new XMLHttpRequest;
xhr.open('post', 'savefile.ashx');
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (200 == xhr.status) {
alert(xhr.responseText);
}
else alert('发生错误\nstatus:' + xhr.status + '\n返回内容:' + xhr.responseText);
}
}
xhr.send(fd)
}
</script>
有帮助或者启发麻烦点个采纳【本回答右上角】,谢谢~~
你的接口可以实现,传多个文件吗。可以传一个文件数组试试
使用数组的形式传文件