Php <;输入类型=";文件"/&燃气轮机;将数据发布为。。。?

Php <;输入类型=";文件"/&燃气轮机;将数据发布为。。。?,php,javascript,html,post,file-upload,Php,Javascript,Html,Post,File Upload,我甚至不确定这是否可能 给定一个带有的表单和一个有效的选定文件,我是否可以使用document.getElementById(“fileinput”).value在XMLHttpRequest对象中发布值,并期望$\u文件保存该对象?如果这篇文章可以被合理地预期通过,我如何获得文件的信息 跟进 然后,是否可以将标准的XMLHttpRequest对象与FileReader一起用于上载文件?或者这是一罐完全不同的鱼?我试图最小化无关代码,而不是反复问愚蠢的问题 编辑-关闭 发现它可以在没有filer

我甚至不确定这是否可能

给定一个带有
的表单和一个有效的选定文件,我是否可以使用
document.getElementById(“fileinput”).value
XMLHttpRequest
对象中发布
,并期望
$\u文件
保存该对象?如果这篇文章可以被合理地预期通过,我如何获得文件的信息

跟进

然后,是否可以将标准的
XMLHttpRequest
对象与
FileReader
一起用于上载文件?或者这是一罐完全不同的鱼?我试图最小化无关代码,而不是反复问愚蠢的问题

编辑-关闭

发现它可以在没有filereader的情况下,只使用基本的文件API而不使用filereader,并且没有问题,尽管它为拥有filereader的用户合并了filereader

基本上,
使用XMLHttpRequest().upload
发送
文件。完全异步;但在IE或Opera中没有乐趣,在这种情况下,我可以回到标准的同步形式或iframe


无论如何,由于显然无法实现,我认为它将成为一个伟大的开源发布工具。谢谢大家。

试试valums文件上传器

我只是在一周前为ajax图像上传实现了它

您不能以ajaxly方式发布文件

看看这个问题,看看如何伪造它

或者这个:

否,JavaScript无法访问
文件
输入
字段中的文件

大多数解决方法都涉及某种类型的Flash上传程序,比如SWFUpload。HTML5有一些不错的东西,但你会失去50%的互联网用户,他们是IE用户。

你可以在HTML5中使用:


可能的副本不正确。如果浏览器支持HTML5文件api,则可以使用AJAX将文件发送到server.neato。我没见过。但有多少浏览器支持这一点?当然不是IE8,它可能仍然是最常用的浏览器。确实,依赖它是不可行的。我只是说这是可能的。为了最好的发展,为了剩下的后退。什么是“整洁的HTML5东西”。。。你是说像FileReader吗?比如Gmail的拖放上传器。如果可能的话,我倾向于在不显著减少功能的情况下为大多数人开发。。。通过推动信封前进,而不是等待它交付给你。我不会把老板的钱花在实现相同功能的两倍工作上,除非有充分的理由。我不是说把老板的钱花在工作上;我说的是在预算之内,在最前沿,按时做到最好。做这件事是因为你全身心投入到你所做的事情中——时间会花在某一点上;不管是现在还是将来,这对我来说都没什么区别。好的。在Safari中不起作用,这意味着我可以使用
iframe
方法返回Safari。@stslavik:我相信它在IE9中甚至不起作用,所以它可能还没有准备好生产。可能不会。但我得到了以前没有的选项(请参阅所有以“否”开头的答案)
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
};