2017-04-22 106 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

没有找到你? –