2014-10-29 73 views
3

我完全在jQuery noob,併成爲絕望得到它的工作。簡單的jQuery AJAX文件上傳

這是HTML:

<form method="post" enctype="multipart/form-data"> 
    <input id="pic "type="file" name="file" onchange="javascript:this.form.submit();"> 
</form> 

的jQuery:

$("#pic").change(function() { 
    var file_data = $('#pic').prop('files')[0]; 
    var form_data = new FormData(); 
    form_data.append('file', file_data) 
    alert(form_data); 
    $.ajax({ 
       url: 'doupload.php', 
       dataType: 'text', 
       cache: false, 
       contentType: false, 
       processData: false, 
       data: form_data, 
       type: 'post', 
       success: function(dat){ 
        alert('it works maybe'); 
       } 
    }); 
}); 

所以我只是想發送的文件doupload.php與($_FILES['file']['tmp_name']

抓住它存在,但它不工作(ofc),我沒有找到任何工作谷歌或堆棧的任何東西...

我用這個lilbary:<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>

+0

你有什麼錯誤? – Ben 2014-10-29 03:30:28

+0

如何查看錯誤? – user2966167 2014-10-29 03:32:57

+0

在javascript控制檯中查看並確保在php – Ben 2014-10-29 03:33:32

回答

1
<input id="pic "type="file" name="file" onchange="javascript:this.form.submit();"> 

你有 「類型=」 文件」

其更改爲type = 「文件」

另外,如果你有AJAX通過"$("#pic").change(function() {發送的變化那麼你也不應該有onchange="javascript:this.form.submit();",因爲它會提交表單,而阿賈克斯仍在發送,造成可能的時間問題(如阿賈克斯呼籲沒有完成)

據我所知,你不應該有提交事件,因爲數據已經通過ajax調用提交。

+0

omg這樣愚蠢的錯誤-_-謝謝 – user2966167 2014-10-29 04:37:20