阿里云oss多图上传问题,该怎么多图上传,一张一张上传倒是没问题?

最近遇到需求,一次性上传多张图片到阿里云。
1.代码如下:

function ALIcloud(host,policy,signature,accessid,dir,expire){
        //将图片上传给阿里云服务器
        var fileList = document.getElementById("file").files;
        alert(fileList.length)
        var ossData = new FormData();
        for (var i = 0; i < document.getElementById("file").files.length; i++) {
          
            ossData.append("file[]", fileList[i])
            console.log(ossData.getAll('file[]'));
           
        }
        // return;
        // 添加配置参数
        ossData.append('OSSAccessKeyId', accessid);
        ossData.append('policy', policy);
        ossData.append('Signature', signature);
        ossData.append('key', dir);
        ossData.append('success_action_status', 201); // 指定返回的状态码
        // ossData.append("file", document.getElementById("file").files[0])

        $.ajax({
            url:host,  
            type:'POST',
            data:ossData,
            dataType: 'xml', // 这里加个对返回内容的类型指定
            processData: false,//不需要进行序列化处理
            async: false,//发送同步请求
            contentType: false,//避免服务器不能正常解析文件
            success:function (ret) {
                
                $(".loading").hide();
                var url = $(ret).find("Location").text();
                arr.push(url);
                
            },
            error: function(xhr) {
                alert("错误提示: " + xhr.status + " " + xhr.statusText); 
            }
        });
    }

2.代码截图

clipboard.png

3.结果
我能打印出我上传的文件

clipboard.png

但是上传到阿里云的时候报错

clipboard.png

我提交的信息如下:

clipboard.png

------WebKitFormBoundaryXmbASDfUBAHXSFac
Content-Disposition: form-data; name="file[]"; filename="pause.png"
Content-Type: image/png


------WebKitFormBoundaryXmbASDfUBAHXSFac
Content-Disposition: form-data; name="file[]"; filename="play.png"
Content-Type: image/png


------WebKitFormBoundaryXmbASDfUBAHXSFac
Content-Disposition: form-data; name="OSSAccessKeyId"

LTAIsGh8ozwyuFIB
------WebKitFormBoundaryXmbASDfUBAHXSFac
Content-Disposition: form-data; name="policy"

eyJleHBpcmF0aW9uIjoiMjAxNy0wOS0yMVQxODoyMzozNFoiLCJjb25kaXRpb25zIjpbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsInVwbG9hZFwvIl1dfQ==
------WebKitFormBoundaryXmbASDfUBAHXSFac
Content-Disposition: form-data; name="Signature"

NayjN9ompTmwn/H51uje7XE29lo=
------WebKitFormBoundaryXmbASDfUBAHXSFac
Content-Disposition: form-data; name="key"

upload/${filename}
------WebKitFormBoundaryXmbASDfUBAHXSFac
Content-Disposition: form-data; name="success_action_status"

201
------WebKitFormBoundaryXmbASDfUBAHXSFac--
阅读 5.8k
1 个回答

已经用了笨方法解决,用for循坏一个个像传输一张图片一样传过去。望大神们有什么好方法提供。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题