Estoy intentando subir un formulario con una imagen con PHP.
La imagen iría a una carpeta llamada "imagenes" y los datos, junto con el nombre de la imagen iría a MySQL.
No tengo mucha idea de esto y he visto algunos scripts pero no acaban de funcionarme.
El código que tengo es:
Código:
//Variable para saber si se produce algun error $error=0; // Guarda las caracteristicas de la imagen //nombre_archivo=al directorio y al nombre que quieres que se guarde la foto $nombre_archivo = "..imagenes/".$_FILES['imagen']['name']; //tipo_archivo= a la extension del archivo en nuestro caso solo aceptamos imagenes (jpg, gif y png) $tipo_archivo = $_FILES['imagen']['type']; // tamano_archivo= Almacena el tamaño del archivo en bytes $tamano_archivo = $_FILES['imagen']['size']; //compruebo si las características del archivo son las que deseo if($nombre_archivo!='../imagenes'){ if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpg")) && ($tamano_archivo < 2000000))) { //el tamaño o la extension del archivo no son correctas se pone error=1 $error=1; }else{ if (move_uploaded_file($_FILES['imagen']['tmp_name'], $nombre_archivo)){ // El archivo ha sido cargado con éxito }else{ //No se ha podido guardar el archivo en el servidor error=2 $error=2; } } } // Comprueba si tiene algun error if ($error==1){ echo "<script> alert (\"El archivo no debe tener un tamaño superior a 2 MB y deber ser JPG o GIF\"); </script>"; echo "<script language=Javascript> location.href=\"index.php\"; </script>"; die(); } elseif ($error==2){ echo "<script> alert (\"No se ha podido guardar la imagen en el SERVIDOR \"); </script>"; echo "<script language=Javascript> location.href=\"index.php\"; </script>"; die(); } //si no hay errores se inserta en la TABLA else{ $insertSQL = sprintf("INSERT INTO libros (libro_id, nombre_libro, descripcion, precio, imagen) VALUES (%s, %s, %s, %s, %s)", GetSQLValueString($_POST['libro_id'], "text"), GetSQLValueString($_POST['nombre_libro'], "text"), GetSQLValueString($_POST['descripcion'], "text"), //GetSQLValueString($_POST['Cantidad'], "int"), GetSQLValueString($_POST['precio'], "double"), GetSQLValueString($nombre_archivo, "text") ); mysql_select_db($database_conexion_libros, $conexion_libros); $Result1 = mysql_query($insertSQL, $conexion_libros) or die(mysql_error()); $insertGoTo = "ingreso_exitoso.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); }