14/05/2011, 23:31
|
| | Fecha de Ingreso: junio-2009
Mensajes: 155
Antigüedad: 15 años, 6 meses Puntos: 5 | |
Respuesta: Error al subir un archivo jpg al servidor Cita:
Iniciado por C2am El que uso para subir imagenes y crear una miniimagen es esto:
Código PHP:
Ver original<? // ----- script para subir la imagen --- if($_POST){ // Creamos la cadena aletoria -- la modifique para poder utilizar el nombre + aleatorio $nom=explode(".",$_FILES [ 'file' ][ 'name' ]); //para usar nombre de la imagen $nom2 = $nom[count($nom)-2]; //obtengo solo el nombre sin extension //$str = "1234567890"; $sub = $id_noticia; $cad = $nom2."_".$sub; /*for($i=0;$i<3;$i++) { $cad .= substr($str,rand(0,9),1); } */ // Fin de la creacion de la cadena aletoria $tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero $tamaño_max="300000"; // Tamaño maximo permitido if( $tamano < $tamaño_max){ // Comprobamos el tamaño //$destino = '../imagennov' ; // Carpeta donde se guardara $sep=explode('image/',$_FILES['file']['type']); // Separamos image/ $tipo=$sep[1]; // Optenemos el tipo de imagen que es if($tipo == "pjpeg"){$tipo = "jpeg";} if($tipo == "x-png"){$tipo = "png";} if($tipo == "gif" || $tipo == "jpeg"|| $tipo == "png"){ // Si el tipo de imagen a subir es el mismo de los permitidos, seguimos. Puedes agregar mas tipos de imagen move_uploaded_file ( $_FILES ['file']['tmp_name'],$destino . '/' .$cad.'.'.$tipo); // Subimos el archivo // creo la mini a tamaño de 175 ancho o menos si es más chica la img original include('imgchiqui.php'); $imagenm= $destino . '/' .$cad.'.'.$tipo; // obtengo el ancho para definir si se achica o no // $dim[0] ancho - $dim[1] altura if ($dim[0] >= 175){thumb1($imagenm, 175, $tipo);} else{thumb1($imagenm, $dim[0], $tipo);} } else echo "el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo decimos } else echo "El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo decimos } ?>
siendo imgchiqui.php:
Código PHP:
Ver original<? function thumb1($imagen,$ancho,$tipo) { // Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande". $dir_thumb = "minis/"; // Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg", // el thumbnail se llamaría "tn_imagen1.jpg" $prefijo_thumb = "m_"; // Aquí tendremos el nombre de la imagen. // Aquí la ruta especificada para buscar la imagen. // Intentamos crear el directorio de thumbnails, si no existiera previamente. @mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb); // Aquí comprobamos que la imagen que queremos crear no exista previamente if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) { // echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n"; // si es jpeg o jpg if($tipo == "jpg" || $tipo == "jpeg"){ // miramos el tamaño de la imagen original... $datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n"); // intentamos escalar la imagen original a la medida que nos interesa $ratio = ($datos[0] / $ancho); $altura = round($datos[1] / $ratio); // esta será la nueva imagen reescalada // con esta función la reescalamos // voilà la salvamos con el nombre y en el lugar que nos interesa. imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre); } // si del tipo png if($tipo == "png"){ // miramos el tamaño de la imagen original... $datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n"); // intentamos escalar la imagen original a la medida que nos interesa $ratio = ($datos[0] / $ancho); $altura = round($datos[1] / $ratio); // esta será la nueva imagen reescalada // con esta función la reescalamos // voilà la salvamos con el nombre y en el lugar que nos interesa. imagepng($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre); } // si del tipo gif if($tipo == "gif"){ // miramos el tamaño de la imagen original... $datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n"); // intentamos escalar la imagen original a la medida que nos interesa $ratio = ($datos[0] / $ancho); $altura = round($datos[1] / $ratio); // esta será la nueva imagen reescalada // con esta función la reescalamos // voilà la salvamos con el nombre y en el lugar que nos interesa. imagegif($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre); } } } ?>
Lo único que debo tener presente es el peso del archivo original, ya que si es muy grande tarda mucho, o directamente se bloquea. por eso siempre se deben subir con el tamaño final a mostrar.
saludos Gracias y pues mi error era de que no se el por que , no pasaba de esta condicion: Cita: if (is_uploaded_file($_FILES['foto']['name'])) Ya arregle la ruta y el error es otro. Cita:
Iniciado por Nemutagk Dices que el error es al subirlo, pero realmente no dices cual es el error exactamente, muestra el error que marca php Me sale este error ahora: Cita: Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. |