2012-07-11 43 views
0

真正簡單的任務。我有一個網址,在Win8的客戶端應用程序文件,我從做這樣的事情了:使用WinJS.xhr將文件放到休息服務

this.image = URL.createObjectURL(file);  

,現在我需要將文件通過互聯網發送有點像這樣:

var options = { 
type: method, 
url: MyApplication.servicesUri + "rest/" + dpName + queryParameters, 
headers: { "Content-type": "application/json" }, 
data: JSON.stringify(objParameters) 
}; 
WinJS.xhr(options) 

所以問題是,我如何「倒轉」我的第一個操作並獲取文件,以便將其設置爲我的PUT請求的data

回答

1

我用不同的方法解決了這個問題,但是這個問題的答案來自DataRead。看一下msdn頁面上的例子。

2

我在這裏找到了找回從URL調用URL.CreateObjectURL(storageFile)創建的URL的StorageFile的方法。

我還看過social.msdn上的塞巴斯蒂安線程。無法獲取任何內容以從URL中取回存儲文件。我需要使用WinJS.xhr()而不是後臺傳輸。

我終於使用解決方案來保存storageFile和URL引用 - [綁定到image.src的URL用於顯示和存儲文件以上傳到blob。 MSApp.CreateFileFromStorageFile對此很有用。完整的代碼片段可以被看作here

更新:我找到一種方式來獲得文件對象由URL.CreateObjectURL返回的URL後面。這來自w3 File API spec第12.7節。只需使用WinJS.xhr來獲得blob。

// url like - blob: <guid> 
WinJS.xhr({ url: url, responseType: 'blob' }); 
}).then(function (req) 
{ 
    var blob = req.response; 
}).then(null, function onerror() 
{ 
});