<input type='file' name='inputfile' id='inputfile'> Estoy tratando de cargar una imagen sin enviar un formulario, justo después de cambiar el file de entrada:
$('#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); Error:
Undefined index: inputfile...
¿Alguna ayuda?
Vea los siguientes cambios:
<input type='file' name='inputfile' id='inputfile'>Así es como debería haber enviado la solicitud 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); } }); }); });Y, por último, así es como debería haber procesado los datos del formulario:
$src = $_FILES['file']['tmp_name']; $targ = "../images/".$_FILES['file']['name']; move_uploaded_file($src, $targ);Prueba esto:
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); } });en php puede obtener los datos del archivo como:
$_FILES['inputfile']