如何从浏览器保存或修改文件

时间:2013-09-10 20:41:06

标签: javascript html xml

好的,所以我今天的问题有点模糊,但很多人似乎都在问这个问题。无论如何从HTML页面保存文件不是严格的IE特定的?我正在尝试编写一个打开的HTML页面和XML文件,并允许您编辑页面中的文件并保存。显然,作为一般做法,这很糟糕,因为使用脚本编写文件会产生巨大的安全隐患,但必须有一些方法。我正在使用JavaScript进行大部分数据操作,但在对XML文件进行更改后,我希望能够在硬盘上看到这些更改反映在已保存的副本中。有什么选择这样的东西?

4 个答案:

答案 0 :(得分:0)

我认为你不能这样做,但是,你可以使用php创建一个包含用户指定内容的文件,并将其保存在你的服务器上。此时,您可以将链接返回给用户进行查看。如果你有一个后端数据库,它会更好。

就像我说的,这个选项实际上是在服务器上创建文件,而不是更改它们。

有用的链接:

http://www.tech-recipes.com/rx/1455/php-create-a-file-on-your-server/

答案 1 :(得分:0)

我建议检查nodejs。我为Chrome写了一个扩展程序,完全相同。它从我的硬盘打开一个文件,我可以编辑它,然后保存它。我只是使用nodejs和套接字作为浏览器和文件系统之间的桥梁。这是一段演示过程的视频:http://www.youtube.com/watch?v=exAWuCZFCSc 可能因为您已经知道javascript,您将能够轻松编写自己的模块。

答案 2 :(得分:0)

你可以试试这个:

var dataXml = '<?xml version="1.0" encoding="ISO-8859-1"?><note><from>Myself</from><to>World</to><message>Hello world!</message></note>';    
var url = 'data:text/xml;charset=utf8,' + encodeURIComponent(dataXml);

window.open(url, '_blank');
window.focus(); 

演示:http://jsfiddle.net/YEAkP/3/

答案 3 :(得分:0)

只要您不关心旧机器,使用html5的JS API就很容易了:

现场演示:http://danml.com/iotest.html

<input type=file id=file onchange=pop(this)>
<button onclick="download(data.value, file.files[0].name, file.files[0].type )">save</button>
<br />

<textarea cols=110 rows=20 id=data ></textarea>

<script src="http://danml.com/js/download.js" ></script>
<script>
function pop(file){
  var fr=new FileReader();
  fr.onload=function(e){data.value=e.target.result;}
  fr.readAsText(file.files[0]);
}

</script>