Snippet to download a file using WinJS.xhr and save it. The file variable below is a StorageFile, result of pickSaveFileAsync.
Note the usage of responseType: “blob” as an option to xhr, and how it is copied to the file stream with msDetachStream.
WinJS.xhr({ responseType: "blob", type: "GET", url: "http://example.com/", }).then(function (response) { var fileContents = response.response; return file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(function (stream) { return Windows.Storage.Streams.RandomAccessStream.copyAsync(fileContents.msDetachStream(), stream).then(function () { return stream.flushAsync().then(function () { stream.close(); fileContents.msClose(); }); }); }); });
I tried to use replaceWithStreamedFileFromUriAsync and writeBufferAsync, but never managed to make it work. If you do, leave a comment!