2012-11-07 150 views
2

我使用jQuery File Upload插件將文件上傳到S3,由於某種原因,S3總是認爲我發送了多個文件,而我沒有。jQuery文件直接上傳到S3

$('#fileupload').fileupload({ 
    dataType: 'json', 
    limitConcurrentUploads: 1, 
    singleFileUploads: true, 
    replaceFileInput: false, 
    limitMultiFileUploads: 1, 
    sequentialUploads: true, 
    add: function(e, uploadData) { 

     var file = {}; 
     file.id = 'randomstring'; 
     file.name = uploadData.files[0].name; 
     $.ajax({ 
      type: 'post', 
      url: /sign_files_path/, 
      dataType: 'json', 
      data: {'upload_filename': file.name, 'file_uploader_id': file.id }, 
      success: function(result, text) { 
       if (result && result.amazon_request && result.post_url) { 

        uploadData.formData = result.amazon_request; 
        uploadData.url = result.post_url; 
        console.log(uploadData.files.length) // This always shows 1 
        console.log(uploadData) 
        uploadData.submit(); 
       } 
      }, 
      error: function(xhr, status) { 
      } 
     }); 
    }, 
    progress: function(e, data) { 
     // console.log(data) 
    } 
}); 

我從S3獲得關於發送文件的位置的具體細節,以及當我提交它不起作用時。我已經設置了每個配置選項,並重新讀取文檔5次,但每次我嘗試上傳時,都會收到S3的400響應。

任何人有任何想法,我可能會失蹤?

回答

1

終於明白了。因爲它與Flash uploader工作,我只需要兩個POST要求比較和解決方案有兩個:

  1. 我需要改變文件輸入字段的名稱爲「文件」
  2. 添加2個POST變量,這是在S3政策中定義的。