我的网站要求用户上传指定格式的 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()
并使用此替换原始文件。似乎工作正常。