m0_59156126 2021-08-05 11:00 采纳率: 0%
浏览 45

怎么实现上传文件夹并且只调用一次接口?

要实现一个效果,上传这个文件夹中的所有的文件,我已经用vue-simple-upload这个插件实现了,但是现在是上传一个文件请求一次,怎么把它一个接口上传多个文件,求解。

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-08-05 11:23
    关注

    用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>
    
    

    有帮助或者启发麻烦点个采纳【本回答右上角】,谢谢~~

    评论

报告相同问题?

问题事件

  • 创建了问题 8月5日

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)