[英]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.