Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax上传文件不工作_Php_Jquery_Ajax_File_Upload - Fatal编程技术网

Php Ajax上传文件不工作

Php Ajax上传文件不工作,php,jquery,ajax,file,upload,Php,Jquery,Ajax,File,Upload,Html代码: <input type="file" id="file" /> PHP代码: if(isset($_POST['file'])){ echo "1"; } 上传后提示空消息 但是这段代码应该是错误1使用ajax直接上传文件是不可能的。但也有一些使用框架的变通方法。 尝试以下教程: 读这篇文章 cfr:这是一个解决办法,但可能有助于 function uploadFile() { var file = document.getElem

Html代码:

<input type="file" id="file" />
PHP代码:

if(isset($_POST['file'])){
    echo "1";
}
上传后提示空消息


但是这段代码应该是错误1

使用ajax直接上传文件是不可能的。但也有一些使用框架的变通方法。 尝试以下教程:

读这篇文章
cfr:

这是一个解决办法,但可能有助于

function uploadFile() {
            var file = document.getElementById('fileToUpload').files[0];
                if (file) {
                    var fileSize = 0;
                    var fileType = ''+file.type;
                    if(checkType(fileType)){
                            var fd = new FormData();
                            fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
                            var xhr = new XMLHttpRequest();

                            xhr.open("POST", "uploadPhoto");
                            xhr.send(fd);
                    }
                    else{
                            document.getElementById('fileToUpload').value ='' ;
                            alert("Choose of specified file Format only.");
                        }
                }
        }*

始终记住,如果这些解决方案中的任何一个不起作用,并且文件属性未显示在:

$.ajax{url:here}

尽管一切都是正确的

如果您自己是从ajax调用中加载的

试着把它放在主文件里。一个在url或url中 将文件放在url中出现的位置,即文件的最终文件夹 出现在url中,然后使用包含函数包含文件。
您应该查看和框架,作为旧浏览器的后备方案。上传文件不像传递值那么简单。直接使用ajax上传文件是可能的。阅读XHR2/FormData。事实上,你的一个链接展示了如何通过ajax上传文件?您也可以使用.ajax方法上载文件。该链接显示了一个带有iframes的示例,直接使用.ajax是不可能的。您可能希望将来阅读您发布的链接,例如本例中的第一个链接。再一次,通过Ajax直接上传是可能的。在下次提供答案之前,请尝试做一些研究,或者如果您打算对jquery进行评论,请至少对它有一些了解。Jquery的Ajax函数只是XMLHttpRequest的包装器。在所有现代浏览器中都可以通过xhr上传文件。
function uploadFile() {
            var file = document.getElementById('fileToUpload').files[0];
                if (file) {
                    var fileSize = 0;
                    var fileType = ''+file.type;
                    if(checkType(fileType)){
                            var fd = new FormData();
                            fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
                            var xhr = new XMLHttpRequest();

                            xhr.open("POST", "uploadPhoto");
                            xhr.send(fd);
                    }
                    else{
                            document.getElementById('fileToUpload').value ='' ;
                            alert("Choose of specified file Format only.");
                        }
                }
        }*