2011-05-27 25 views
0

我想模擬文件上傳到Web服務器,接受「正常」文件上傳http請求,但iso獲取文件數據使用典型的輸入類型=文件格式元素我想POST'ed內容來自先前HTTP的GET結果POST'ing基於以前檢索的「二進制」數據的多部分數據

我想我有使用類似

function load_binary_resource(url) { 
    var req = new XMLHttpRequest(); 
    req.open('GET', url, false); 
    req.overrideMimeType('text/plain; charset=x-user-defined'); 
    req.send(null); 
    if (req.status != 200) { 
     return ''; 
    } 
    return req.responseText; 
} 

問題所做的GET部分現在是我哪有那麼發佈此接受更典型的文件上傳HTTP請求的服務器代碼可以保持不變。

我一直在試圖與jQuery的形式插件,但我似乎無法得到的二進制內容POST'ed服務器

所有幫助肯定熱烈歡迎!

感謝

彼得

+1

我看了你的第一款兩次,但我不明白你的意思。 – 2011-05-27 15:27:55

+0

感謝您的耐心:)我想要的是在第一個URL上進行GET操作,檢索圖像並POST圖像返回第二個URL(同一個域),就像它在「正常」文件上傳的位置一樣。基本上我猜是複製操作。 – Peter 2011-05-28 10:21:06

+0

難道你不能只是將圖像的URL傳遞給服務器,並在服務器端進行圖像下載? – 2011-05-29 09:24:25

回答

0

如果我理解你,除非我錯了,你本身不能上傳文件使用一個XMLHttpRequest尚未跨瀏覽器。我相信現在可以使用Firefox。

我發現這些有用的尋找到同樣的事情時:

https://developer.mozilla.org/en/XMLHttpRequest https://developer.mozilla.org/en/using_files_from_web_applications https://developer.mozilla.org/en/DOM/File.getAsBinary

我已經看到了一些解決方法sendAsBinary非Gecko瀏覽但我相信其他人知道更多關於那個前面。我放棄了與我的目標瀏覽器包括IE相似的東西。我最終使用Uploadify,當純JavaScript方法不可用時,它會自動切換到Flash或其他方法。

希望幫助(或者甚至是遠程接近你的要求)

+0

謝謝傑森。這確實接近我需要做的事情。我在http://en.dogeno.us/2011/04/post-to-appengine-blobstore-using-ajax-firefox-and-chrome/上找到了一些靈​​感。這是對Firefox和Chrome的工作,但不是在Safari上。我甚至沒有對IE瀏覽器感到困擾。奇怪這太難了。我正在做JS開發的第一步。 – Peter 2011-05-29 06:12:15