Ajax上传文件无效

时间:2013-11-16 13:10:08

标签: php jquery ajax file upload

Html代码:

<input type="file" id="file" />

jQuery代码:

$.ajax({
        url: 'go.php',
        data: {file:$('#file').attr('files'),upload:name},
        cache: false,
        contentType: 'multipart/form-data',
        processData: false,
        type: 'POST',
        success: function(data){
            alert(data);
        },
        error: function(data){
            alert("error");
        }
    });

PHP代码:

if(isset($_POST['file'])){
    echo "1";
}

上传提醒空消息后!

但是这段代码应该出错“1”

3 个答案:

答案 0 :(得分:0)

它是一种解决方法,但可能有所帮助...

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.");
                        }
                }
        }*

答案 1 :(得分:0)

永远记住这些解决方案中的任何一个都不起作用,文件属性没有显示在:

$.ajax({ url : here });

尽管一切都是正确的。

如果您的<form>本身是从ajax调用加载的,

  1. 尝试将其放在主文件中(即一个在url中)或
  2. <form>文件放在url中显示的位置(即文件的最终文件夹) 出现在url中)然后使用include()函数包含文件。

答案 2 :(得分:-1)

使用ajax上传文件是不可能的。但是有一些使用框架的变通方法。 试试这个教程:

http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/

阅读这篇文章 CFR:jQuery Ajax File Upload