0

本当に単純なタスク。私は次のようなことをして得たWin8クライアントアプリのファイルへのURLを持っています:

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)

つまり、最初の操作を「逆」にしてファイルを取得し、それをdataPUT リクエストの として設定するにはどうすればよいでしょうか?

4

2 に答える 2

2

ここでは、URL.CreateObjectURL(storageFile) の呼び出しによって作成された URL から StorageFile を取得する方法を探しています。

social.msdn のSebastian スレッドも見ました。URL から storagefile を取得するために何も動作しませんでした。バックグラウンド転送ではなく、WinJS.xhr() のみを使用する必要があります。

最後に、storageFile と URL の両方の参照を保持するソリューションを使用しました。MSApp.CreateFileFromStorageFileは、そのための便利な API でした。完全なコード スニペットはここで見ることができます

更新: URL.CreateObjectURL によって返された URL からファイル オブジェクトを取得する方法を見つけました。これは、w3 ファイル API 仕様のセクション 12.7 に由来します。WinJS.xhr を使用してブロブを取得するだけです。

// url like - blob: <guid>
WinJS.xhr({ url: url, responseType: 'blob' });
}).then(function (req)
{
    var blob = req.response;
}).then(null, function onerror()
{
});
于 2013-04-01T11:02:07.217 に答える
1

私は別のアプローチでこの問題を解決しましたが、この質問に対する答えはDataReadから得られます。msdn ページの例を見てください。

于 2012-07-21T15:58:14.603 に答える