0

現在我在javascript中有這段代碼。在IE8中可以從瀏覽器上傳文件到S3嗎?

var file_object = $('#PHOTO').get(0).files[0]; 

the_form = new FormData(); 
the_form.append("AWSAccessKeyId", "TESTING"); 
the_form.append("acl", "authenticated-read"); 
the_form.append("policy", policy); 
the_form.append("signature", signature); 
the_form.append("Content-Type", "image/jpeg"); 
the_form.append("key", "test.jpg"); 
the_form.append("file", file_object); 

$.ajax({ 
    url: "http://S3BUCKET.s3.amazonaws.com", 
    type: "POST", 
    data: the_form, 
    processData: false, 
    contentType: false 
}) 

它可以在Chrome,Firefox,IE6,7,8,9以外使用。

原因是直到IE10才支持文件對象!

https://developer.mozilla.org/en-US/docs/Web/API/File

是否有IE10瀏覽器之前,任何變通的解決方案?

PS:代碼示例會很好!

回答

0

沒有閃光很多事情絕對是不行的。我相信你引用的lib有一些Flash後備,但我不清楚他們是否可以處理所有涉及的問題。這是我目前正在處理的事情,這裏有簡要的問題:

  • Content-Type頭部響應。 IE瀏覽器(沒有Flash中介)會嘗試下載一個JSON內容類型,沒有辦法解決這個問題,我知道沒有代理中間人去搞封裝頭。
  • 主機名映射。如果不是映射到原始主機名,那麼IE iframe(這是非Flash後備)將不允許您從包含窗口讀取它的內容。可能會發生火災和遺忘,但從s3消耗響應/檢測錯誤可能不會。

我會更新這個答案,因爲我在未來幾天發現更多。這是一個大型項目,所以我們有一些非常重要的要求,我想我會在接下來的一週左右學到很多東西。 (不是我的公司/項目/文章):http://blog.fineuploader.com/2013/08/16/fine-uploader-s3-upload-directly-to-amazon-s3-from-your-browser/

相關問題