Chrome问题-AJAX插入文件输入未上传文件
Chrome Issue - AJAX Inserted File Input not uploading file
我有一个表单,其中一个文件输入字段是通过AJAX动态插入的。本质上,我所做的是显示一个表单,用户选择他们想要的模板,我根据他们选择的模板插入一些额外的表单字段。其中一个具有文件输入。问题是,当我提交添加了文件输入的表单时,PHP$_FILES数组会给我一个错误代码4,这意味着没有上传文件。有人知道我需要做什么才能上传这些文件吗?
我想我必须在JS方面做一些事情来重新评估我发送的表单字段,但我什么都找不到。(是的,我在表单上使用了正确的enctype。)
更新:这只发生在Safari/Chrome上。我在其他地方读到,他们认为这是webkit浏览器的一个安全功能。我不知道是否有解决办法。。
感谢所有
目前尚不清楚您使用的是$.post还是form.submit()。如果您使用form.sub米特(),可能会出现其他问题。
否则,为了通过AJAX将文件发送到服务器,您需要使用Form Data对象。
这个使用FormDataObjects的MDN页面有关于如何使用它的好例子。请注意,如果使用jQuery,则需要将processData和contentType设置为false。请参阅以下内容(取自MDN页面)。
var fd = new FormData(document.getElementById("fileinfo"));
fd.append("CustomField", "This is some extra data");
$.ajax({
url: "stash.php",
type: "POST",
data: fd,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
});
如果您通过form.submit()方法发送表单,那么发送文件应该没有问题。您是否尝试通过ajax发送文件?如果是这样,你就不能直接说。使用iframe、flash或使用FileReader读取文件数据,并在ajax请求中发送原始数据。
相关文章:
- Javascript,文件输入和FormData问题
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 访问javascript文件输入变量的值
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 多次打开多个文件输入,而不会丢失以前选择的文件
- jquery形成多文件输入字段Value()
- 如何从 Chrome 中的文件输入中删除“未选择文件”工具提示
- 如果从文件输入按钮调用 .ajaxSubmit() 时,它是必需的表单
- 生成由文件输入在特定时间选择的视频文件的缩略图/快照
- 使用javascript获取文件输入
- krajee引导程序文件输入上传
- on('change')不适用于动态添加的文件输入
- 选择要初始化精细上传器的文件输入
- 在DOM中以img的形式插入文件输入
- 单击跨度内的隐藏文件输入会导致RangeError
- 显示当前文件输入有文件后的下一个文件输入
- Krajee文件输入小部件'上传'方法引发异常
- 在引导文件输入中通过post发送一个额外的变量
- 引导文件输入
- 为什么在文件输入上触发点击事件也会在表单上触发提交事件