compañeros de cristalab mi inconveniente es el siguiente tengo un codigo ajax por el cual mando los datos de un formulario pero cuando el formulario envia archivos es decir cuando se le agrega el atributo enctype="multipart/form-data" al formulario manda este campo vacio.
aqui el AJAX que utilizo:
Código Javascript :
<script language="javascript" src="../js/jquery-1.3.min.js"></script> <script language="javascript"> $(document).ready(function() { $().ajaxStart(function() { $('#loading').show(); $('#result').hide(); }).ajaxStop(function() { $('#loading').hide(); $('#result').fadeIn('slow'); }); $('#form, #fat, #fo4').submit(function() { $.ajax({ type: 'POST', url: $(this).attr('action'), data: $(this).serialize(), success: function(data) { $('#result').html(data); } }) return false; }); }) </script>
También utilizo un archivo Jquery, bueno el formulario creo q no es necesario colocarlo prque es un input normal
Código HTML :
<form action="form.php" method="post" name="fo4" id="fo4" enctype="multipart/form-data"> Archivo:<input type="file" name="archivo" id="archivo" /> </form>
el archivo from.php solo recibiria los datos para ser guardados en la base de datos.
Código PHP :
$tamano = @$_FILES["archivo"]['size']; $tipo = @$_FILES["archivo"]['type']; $archivo = @$_FILES["archivo"]['name']; $prefijo = substr(md5(uniqid(rand())),0,6); if ($archivo != "") { // guardamos el archivo a la carpeta files $destino = "imagenes/".$prefijo."_".$archivo; //if(@move_uploaded_file($_FILES['archivo']['tmp_name'], $destino)){ if (copy(@$_FILES['archivo']['tmp_name'],$destino)) { $status = "Archivo subido: <b>".$archivo."</b>"; } else { $status = "Error al subir el archivo"; } } else { $status = "Error al subir archivo"; } //luego simplemente insertaríamos en la base de datos. $insert:"INSERT INTO prueba(archivo) VALUES('".$destino."')"; mysql_select_db($database_conexion, $conexion); $Resultset = mysql_query($insert, $conexion) or die(mysql_error()); //imprimimos un echo que es el que se mostrara en el div resultado. echo " Sitio Actualizado correctamente";
Esto es lo que estoy tratando de hacer para subir una foto mediante ajax, el inconveniente es que cuando paso del formulario, al arhivo form.php que recibe no me esta recibiendo $_FILES, por lo cual me deja todo en blanco y no hace nada mi deducción es que el ajax solo me esta mandando el POST y no esta funcionando el atributo enctype="multipart/form-data" es decir no lo tiene, el ajax q estoy utilizando, espero me pueda aconsejar o ayudar en como agregarle esa función al AJAX.