windows8存储javascript应用程序,从web下载和保存图像
windows 8 store javascript app, download and save images from web
我有一个要求,我必须从web url下载图像,并将它们保存到图片库中的一些文件夹中。请注意,它是一个jabvascript应用程序(winJS)。我试了一些例子,但没有成功。
以下是我尝试过的一些代码:
方法1:
var download = null;
var promise = null;
function DownloadFile(uriString, fileName) {
try {
// Asynchronously create the file in the pictures folder.
Windows.Storage.KnownFolders.picturesLibrary.createFileAsync(fileName, Windows.Storage.CreationCollisionOption.generateUniqueName).done(function (newFile) {
var uri = Windows.Foundation.Uri(uriString);
var downloader = new Windows.Networking.BackgroundTransfer.BackgroundDownloader();
// Create a new download operation.
download = downloader.createDownload(uri, newFile).startAsync().then(complete, error, progress);
// Start the download and persist the promise to be able to cancel the download.
promise = download.startAsync().then(complete, error, progress);
}, error);
} catch (err) {
// displayException(err);
}
};
方法2:
function downloadFile(uri) {
var localFolder = Windows.Storage.KnownFolders.picturesLibrary;
var thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromUri(Windows.Foundation.Uri(uri));
Windows.Storage.StorageFile.createStreamedFileFromUriAsync("photo.jpg", Windows.Foundation.Uri(uri), thumbnail).done(function (newFile) {
/* Your success and error handlers */
localFolder.createFileAsync("photo2.jpg", Windows.Storage.CreationCollisionOption.replaceExisting)
.then(function (file) {
newFile.copyAndReplaceAsync(file);
});
});
}
以下是您的操作方法(不要忘记在清单中声明访问图片库的能力):
function downloadFileAsync(targetUrl , fileName) {
return WinJS.xhr({
responseType: "blob",
type: "GET",
url: targetUrl,
}).then(function (response) {
var fileContents = response.response;
return Windows.Storage.KnownFolders.picturesLibrary.createFileAsync(fileName, Windows.Storage.CreationCollisionOption.replaceExisting).then(function (newFile) {
return newFile.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();
});
});
});
});
});
}
相关文章:
- Noob web开发人员希望添加web设计和交互
- JavaScript Stack - Web Server 和 API Server:一起或分开
- 脚本下载和执行的顺序与 document.write .
- 开发两个单独的节点应用程序来提供 Web 服务和使用 Web 服务以在浏览器上呈现它是一个好主意吗?
- 使用 Web Worker 和 D3.js 异步生成图形
- 使用 PHP 和 JavaScript 在黑莓中下载和保存图像
- CDN托管的JavaScript库与下载和缩小
- 在 Web 应用和扩展程序之间共享本地存储
- 如何在不下载和上传数据的情况下复制具有许多记录的 Firebase 子项
- 如何在 JavaScript 中从 API 下载和解析 JSON
- 通过websocket阻止Web浏览器和python之间的大量交换
- Javascript:通过开机自检启动文件下载和路由文件
- 文档生成、强制下载和刷新页面
- php web服务器和HTML
- 如何同时创建两者'web'和'节点'Webpack捆绑包的版本
- windows8存储javascript应用程序,从web下载和保存图像
- Web服务和Javascript请求位于同一本地主机端口上
- 使用HTML5/Javascript下载和命名视频
- 仅在支持的浏览器中下载和执行脚本
- OAuth2流在web前端和REST API