我甚至不确定这是否可行......
如果表单中包含<input id="fileinput" type="file" />
和有效的选定文件,我是否可以value
使用document.getElementById("fileinput").value
在XMLHttpRequest
对象中发布$_FILES
并期望XMLHttpRequest
抓住这个对象?如果可以合理地预期POST,我怎样才能获得文件的信息?
跟进
是否可以使用带有FileReader
的标准use XMLHttpRequest().upload
对象来上传文件?或者这是一种完全不同的鱼?我正在努力减少无关的代码,而不是反复提出愚蠢的问题。
修改 - 关闭
发现它可以毫无问题地完成,只使用没有文件阅读器的基本文件API就可以解决问题,尽管它为那些拥有文件阅读器的人提供了文件阅读器。
基本上,File
发送{{1}}。完全异步;但在IE或Opera中没有任何乐趣,在这种情况下,我可以回退到标准的同步形式或iframe伪造。
无论如何,因为显然它无法完成,我认为它将成为一个很好的开源发布。谢谢大家。
答案 0 :(得分:1)
不,JavaScript无法访问file
input
字段中的文件。
大多数解决方法都涉及某种类型的Flash上传程序,例如SWFUpload。有一些整洁的HTML5的东西,但你将失去作为IE用户的50%的互联网。
答案 1 :(得分:1)
您可以在HTML5中使用http://jsfiddle.net/Cjs4G/。
document.getElementById("upload").onchange = function(e) { // on file select
var fr = new FileReader; // reads files
fr.onloadend = function() { // when done reading
alert(fr.result.substring(0, 100)); // alert first part of data
// or send `fr.result` through AJAX
};
fr.readAsBinaryString(e.target.files[0]); // start reading
};
答案 2 :(得分:0)
答案 3 :(得分:0)
NOPE。
你不能ajaxly发布文件。
看看这个关于伪造它的方法的问题。