是否可以更改html的内容<;输入>;使用javascript的文件?

是否可以更改html的内容<;输入>;使用javascript的文件?,javascript,html,file-upload,Javascript,Html,File Upload,我的网站要求用户上传指定格式的xml文件。 所以我想在客户端做一个语法和格式检查,并在上传到服务器之前帮助他们修复这些错误。(我不需要更改硬盘上真实的本地文件,只需要更改发送到服务器的数据) 我目前使用: var reader = new FileReader(); reader.onload = function(e) { var xml = e.target.result; // I help them correct xml here, this will involve lots

我的网站要求用户上传指定格式的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]);
这段代码可以工作,除了它在post数据中发送xml,而不是一个真正上传的文件。 因为我想监控文件上传进度并保存其他文件信息,所以我希望可以有如下内容:
oldfile.content=correctXML
然后我可以提交包含我的
的表单。 这可能吗?还是有一种“正确”的方法来做到这一点

谢谢

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

是的,这是完全可能的,通常用于协助拖放文件操作。例如,如果您希望用户能够将文件放置到textarea上,则可以将textarea设置为放置区域,在该区域中,文件以静默方式传送到输入类型文件元素的路径。我在自己的网站上这样做

签出函数pd.file和pd.filedrop-in,并在我的工具上演示结果