繁体   English   中英

是否可以更改html的内容 <input> javascript文件?

[英]Is it possible to change content of html <input> file with javascript?

我的网站要求用户以指定格式上传其xml文件。 因此,我想在客户端进行语法和格式检查,并帮助他们在上载到服务器之前修复这些错误。 (我不需要更改硬盘驱动器上的实际本地文件,只需要更改发送到服务器的数据)我当前使用的是:

var reader = new FileReader();
reader.onload = function(e) {
  var xml = e.target.result;
  // I help them correct xml here, this will involve lots of interaction with user,
  // so I want it only happen on client side
  var correctXML = fixSyntaxAndFormat(xml);  
  $.post('/foo/bar', {xml: correctXML});
}
reader.readAsText(evt.target.files[0]);

这段代码行之有效,只不过它在帖子数据中发送xml而不是实际上传的文件。 因为我希望监视文件的上传进度并保存其他文件信息,所以我希望可以有以下内容: oldfile.content = correctXML然后我可以提交包含我的<input type="file"/>表单。 这可能吗? 还是有一种“正确”的方式来做到这一点?

谢谢

更新感谢austincheney的示例,我最后创建了new Blob()并使用它替换了原始文件。 似乎工作正常。

是的,这是完全可能的,并且通常用于协助拖放文件操作。 例如,如果您希望用户能够将文件拖放到textarea上,则可以将textarea设为拖放区域,在该区域中,文件的路径将被静默地馈送到输入类型file元素。 我在自己的网站上执行此操作。

结帐功能pd.file和pd.filedrop在http://prettydiff.com/pd.js和演示我的工具,结果http://prettydiff.com/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM