0

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

4

4 回答 4

0

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

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

有用的链接:

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

于 2013-09-10T20:49:02.067 回答
0

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

于 2013-09-10T20:50:23.033 回答
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/

于 2013-09-10T20:53:15.630 回答
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>
于 2013-09-10T20:58:31.637 回答