是否可以更改html<输入>文件
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]);
这段代码是有效的,只是它在post数据中发送xml,而不是真正上传的文件。因为我想监控文件上传进度并保存其他文件信息,所以我希望可以有这样的东西:oldfile.content = correctXML
那么我可以提交包含我的<input type="file"/>
的表格。这样做可能吗?或者有"正确"的方法吗?
感谢
更新感谢austincheney的例子,我最终创建了new Blob()
,并使用它来替换原始文件。看起来工作不错。
是的,这是完全可能的,通常用于帮助进行拖放文件操作。例如,如果您希望用户能够将文件拖放到文本区域,您可以将文本区域设置为一个拖放区域,在该区域中,文件的路径将以静默方式提供给输入类型文件元素。我在自己的网站上做这件事。
在中签出函数pd.file和pd.filedrophttp://prettydiff.com/pd.js并在我的工具上演示结果http://prettydiff.com/
相关文章:
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- 如何逃离<>在javascript下划线模板中
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- 正则表达式,它允许除“”之外的所有字符<>_;{}[]”;
- ajax调用:响应<->数据类型
- 如果所有三个文本框<>然后是100%
- CORS的问题.烧瓶<->AngularJS
- 有没有一种方法可以创建与Java<->JSON映射对象,如JSON.stringfy(jsObject)创建的
- 什么是%<>%调用了语法
- JavaScript返回值:What dos<>意思是
- JavaScript中哪种类型的值对应于Java`List<>`
- 如何发送类似“<>"在参数中使用$.ajax-to-server
- 不等于<>操作员不工作
- jquery附加函数转换<>到实体名称
- 只有当超过3个元素时才显示更多内容按钮,否则不显示.使用jquery's:lt:gt
- 为什么在<>ckeditor中不支持
- url有效性的Java脚本regexp,带有<>
- 设计Javascript前端<->C++后端通信
- 比较查询运算符ObjectId<->日期