我的桌面上有一个需要一些输入的 html 文件。我将如何将该输入写入计算机上的文件?我是否必须使用另一种语言来做到这一点(即 python 或 javascript?),我将如何去做?在相关说明中,有什么方法可以让 javascript 从 html 文件中启动应用程序(目标是写入我计算机上的文件?
5 回答
浏览器具有很多安全性,可以防止对您的计算机进行这种级别的控制。这是一件好事。您不希望随机网站能够在访问它们的任何人的计算机上执行此操作。
他们这样做的方法是编写一个您的浏览器可以访问的 Web 应用程序。浏览器可以将数据提交给在您自己的计算机上运行的应用程序,您的应用程序可以操作文件系统或做许多其他事情。
所以不,浏览器不能做这些事情。是的,您必须使用“另一种语言”来创建在浏览器本身之外运行的东西。您可以使用 javascript(请参阅 node.js)或 python 来执行此操作,以及几乎任何其他存在的编程语言来创建这样的东西。选择哪个取决于您。
您将不得不使用另一种语言。您应该看到Save file Javascript with file name(这需要您在您的网站上创建它并让用户下载它)和Python Save to file(要在 HTML 中实现 Python,请参见此处)。或者在 Javascript 中,您可以 ActiveX
通过执行 * 来保存文件:
活动X
function WriteToFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\Test.txt", true);
s.WriteLine('Hello');
s.Close();
}
Python
myFile = open('Failed.py', 'w')
myFile.write('whatever')
myFile.close()
Javascript(非 ActiveX)
uriContent = "data:application/octet-stream;filename=filename.txt," +
encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');
**注意:我真的不推荐使用ActiveX
,请参阅ActiveX 和 Javascript 不要混合了解更多详细信息*
现在可以使用FileWriter
目前仅受 Chrome 和 Opera 支持的 API 使用 Javascript 写入本地文件:
http://caniuse.com/#search=filewriter
以下是来自 HTML5Rocks.com 的一些示例代码:
function onInitFs(fs) {
fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
// Create a new Blob and write it to log.txt.
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
你的问题有点难以回答。如果“它需要一些输入”是指form
涉及一个元素,那么您可以通过像PHP这样的语言来处理它。
如果您只是想编辑代码并开始学习 HTML,那么 Notepad/TextEdit 和现代网络浏览器是您最好的新朋友。
简短的回答:
你不能。Web 浏览器安全性和沙盒化可以防止这种情况。
更长的答案:
设置一个小型 LAMP 堆栈、Ruby on rails(本地主机服务器)、Python/Django(本地主机服务器)来托管您的 HTML/Web 表单。当您将数据输入表单时,本地守护程序可以处理将数据附加到文件中。
使用 HTML5,您可以获得允许您写入本地文件系统的特殊钩子,但这些钩子可能是特定于浏览器的,并且可能会不时中断。