如何使用 JavaScript/JQuery 在客户端本地创建文本文件
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7685020/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to Create a Text File Locally at client side using JavaScript/JQuery
提问by Saurabh Saxena
I wish to create a text file locally on my system using javascript/jquery.
我希望使用 javascript/jquery 在我的系统上本地创建一个文本文件。
I am trying this code, but not working on my system.
我正在尝试此代码,但不适用于我的系统。
Machine : Ubuntu 10.4 Chrome : 14.0.835.126
机器:Ubuntu 10.4 Chrome:14.0.835.126
window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {
fs.root.getFile('~/Desktop/test.txt', {create: true}, function(fileEntry) {
alert(fileEntry.fullPath); //getting filepath
}, function() {});
}, function() {});
回答by Saurabh Saxena
This is a little tricky but working
这有点棘手但有效
chrome.browserAction.onClicked.addListener(createFile);
createFile();
function createFile()
{
chrome.tabs.getSelected(null, function(tab) {
window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {
fs.root.getFile('test', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
var builder = new WebKitBlobBuilder();
builder.append("Saurabh");
builder.append("\n");
builder.append("Saxena");
var blob = builder.getBlob('text/plain');
fileWriter.onwriteend = function() {
chrome.tabs.create({"url":fileEntry.toURL(),"selected":true},function(tab){});
};
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}, errorHandler);
});
}
function errorHandler(e) {
var msg = '';
switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
Console.Log('Error: ' + msg);
}
Because of the Security Exceptions, i cannot create/modify a file on Local System. But in this code, I am actually creating a file in a directory which is allocated for Google Chrome Temporary Files and then downloading that file into my Downloads Folder.
由于安全例外,我无法在本地系统上创建/修改文件。但在这段代码中,我实际上是在为 Google Chrome 临时文件分配的目录中创建一个文件,然后将该文件下载到我的下载文件夹中。
This is the code of the popup page of a Chrome Extension.
这是 Chrome 扩展程序弹出页面的代码。
:)
:)