通过AJAX上传到Azure云存储的文件已损坏

时间:2015-07-26 21:00:50

标签: javascript ajax azure dropzone.js azure-cloud-services

我正在使用dropzone.js将文件上传到Azure云存储分区。

文件正在上传到存储桶,但是当我下载它们时,它们已损坏。

我的dropzone设置如下:

var printDropzone = new Dropzone("#printDropZone", { method: 'post', maxFiles: 1 });

printDropzone.on('sending', function (file, xhr, formData) {

    xhr.setRequestHeader("x-ms-blob-type", "BlockBlob");
    xhr.setRequestHeader('Content-Length', file.size);
});


printDropzone.on('processing', function (file, xhr) {
    $.ajax({
        url: '/api/sas',
        type: 'GET',
        async: false,
        success: function (response) {
            var timeStamp = Math.floor(Date.now() / 1000);
            upload = timeStamp + '-' + file.name;
            printDropzone.options.url = response.HostingSite + '/' +upload + response.Token;
            printDropzone.options.method = 'put';


        }
    });
});

请求如下所示:

  

接受:应用/ JSON
  Accept-Encoding:gzip,deflate,sdch
  接受语言:EN-US,EN; Q = 0.8
  缓存控制:无缓存
  连接:保持活跃
  内容长度:23684
  内容类型:多部分/格式的数据; boundary = ---- WebKitFormBoundaryALPTivVAxkgUv5lv
  DNT:1个
  主持人:somehost.net
  起源:http://localhost:2130
  引用者:http://localhost:2130/
  User-Agent:Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 44.0.2403.107 Safari / 537.36
  X-MS-BLOB类型:BlockBlob
  X-Requested-With:XMLHttpRequest

我到处寻找。我没有上传的内容,似乎一切都在那里,但无论我上传什么类型的文件,我都会重新下载它。

1 个答案:

答案 0 :(得分:0)

尝试将multipart设置为false。

printDropzone.on('processing', function (file, xhr) {
    $.ajax({
        url: '/api/sas',
        type: 'GET',
        async: false,
        success: function (response) {
            var timeStamp = Math.floor(Date.now() / 1000);
            upload = timeStamp + '-' + file.name;
            printDropzone.options.url = response.HostingSite + '/' +upload + response.Token;
            printDropzone.options.method = 'put';
            printDropzone.options.multipart = false;
    }
});