2017-04-22 105 views
1
<input type='file' name='inputfile' id='inputfile'> 

我想沒有提交表單上傳圖片 - 只需輸入file後改變:上傳照片,無需提交表單

$('#inputfile').change(function(){ 
$.ajax({ 
    url: "pro-img-disk.php", 
    type: "POST", 
    data: new FormData('#inpufile'), 
    contentType: false, 
    cache: false, 
    processData:false, 
    success: function(data){ 
     console.log(data); 
    } 
}); 
}); 

PHP

$src = $_FILES['inputfile']['tmp_name']; 
$targ = "../images/".$_FILES['inputfile']['name']; 
move_uploaded_file($src, $targ); 

錯誤:
Undefined index: inputfile...

有什麼幫助嗎?在PHP

var file_data = $('#inputfile').prop('files')[0]; 
var form_data = new FormData();      // Create a form 
form_data.append('inputfile', file_data);   // append file to form 

$.ajax({ 
     url: "pro-img-disk.php", 
     type  : 'post', 
     cache  : false, 
     contentType : false, 
     processData : false, 
     data  : form_data,       
     success  : function(response){ 
      alert(response); 
     } 
}); 

就可以得到文件數據,如:

+0

你可以參考加工http://stackoverflow.com/questions/23980733/jquery-ajax-file-upload-php –

回答

3

看到以下變化:

<input type='file' name='inputfile' id='inputfile'> 

這裏是你應該怎麼已將ajax請求:

$(document).ready(function() { 
$('#inputfile').change(function(){ 
var file_data = $('#inputfile').prop('files')[0]; 
var form_data = new FormData();     
form_data.append('file', file_data); 
$.ajax({ 
    url: "pro-img-disk.php", 
    type: "POST", 
    data: form_data, 
    contentType: false, 
    cache: false, 
    processData:false, 
    success: function(data){ 
     console.log(data); 
    } 
}); 
}); 
}); 

;最後,這裏是如何你應該表單數據

$src = $_FILES['file']['tmp_name']; 
$targ = "../images/".$_FILES['file']['name']; 
move_uploaded_file($src, $targ); 
+0

只有在頁面重新加載後才能使用! – bonaca

+0

它工作沒有頁面刷新我 – SpaceBaar

1

試試這個

$_FILES['inputfile'] 
+0

這個作品只有在頁面重新加載後! – bonaca

+0

沒有找到你? –