Foros del Web » Programando para Internet » PHP »

Upload de imagen al servidor dudas!!

Estas en el tema de Upload de imagen al servidor dudas!! en el foro de PHP en Foros del Web. este codigo que he recogido de un post del foro y que me funciona perfectamente, hace que me surjan unas dudas de como hacer para ...
  #1 (permalink)  
Antiguo 21/08/2006, 16:18
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 74
Antigüedad: 19 años, 8 meses
Puntos: 0
Upload de imagen al servidor dudas!!

este codigo que he recogido de un post del foro y que me funciona perfectamente, hace que me surjan unas dudas de como hacer para darle la funcionalidad que yo necesito.

-Como modificar la ruta de destino del archivo por otra carpeta en un nivel superior? ../images

-Como imprimir la ruta de la imagen (<img src=http://www.midominio.com/images/imagen.jpg/>) ,no la imagen, una vez subida en la carpeta de destino para que en este mismo archivo darla como valor de un input para enviar la ruta a la base de datos?

y por ultimo

- Como hacer pra que ademas de admitir jpg, admita otros tipos de archivo como por ejemplo gif, png.?

ahi va el codigo:

Código PHP:
<?php 
// cargarJPG.php. Pide un archivo JPG al usuario y luego lo muestra en el navegador.... 
if (isset($_POST["enviar"])) { 
    
// Miramos si el archivo subido realmente es un JPEG (utilizando el tipo MIME recibido) 
    
if ($_FILES["ficheroremoto"]["type"] != 'image/jpeg' && $_FILES["ficheroremoto"]["type"] != 'image/pjpeg'
        echo (
"<p>Error: El archivo cargado no es JPG. Vuelva a intentar</p>"); 
    else { 
        
// Copiamos el archivo JPG al mismo directorio donde tenemos este script. 
        
$NombreEnCliente $_FILES["ficheroremoto"]["name"]; 
        
move_uploaded_file ($_FILES["ficheroremoto"]["tmp_name"], $NombreEnCliente); 
        
// Ahora, mostramos con HTML la imagen JPG en el navegador: 
        
echo "<img src=\"$NombreEnCliente\" />\n\r"
    } 

?>
Gracias por vuestra atencion
  #2 (permalink)  
Antiguo 21/08/2006, 17:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
-Como modificar la ruta de destino del archivo por otra carpeta en un nivel superior? ../images
Le añades tu ruta al segundo parámetro de la funciòn move_uploaded_file() que indica el nombre y ruta donde se deja el archivo finalmente.

"../imagenes/".$NombreEnClient

Recuerda dar permisos de escritura al directorio en cuestiòn donde dejas tus archivos.

Cita:
-Como imprimir la ruta de la imagen (<img src=http://www.midominio.com/images/imagen.jpg/>) ,no la imagen, una vez subida en la carpeta de destino para que en este mismo archivo darla como valor de un input para enviar la ruta a la base de datos?
No entendí bien .. El caso es que en tu BBDD debes almacenar el nombre del archivo que subes .. tú: $_FILES["ficheroremoto"]["name"] ... La ruta no la almacenes en la BBDD .. se supone que todas tus imagenes van a parar a un mismo directorio (o no es así .. y si no es así bajo que criterio creas esos directorios? .. será por otro dato que almacenas en tu BBDD? ..).

De esta forma ahorras espacio en tu BBDD que llenarías de datos redundantes: esas rutas fijas .. y si decides cambia de lugar tus archivos no tienes más que cambiar el código donde presentas tu imagen como una "constante" para el nombre de la ruta hacia el archivo ..

Por cierto .. no deberías llamar a tu imagen por HTTP directo .. deberìas crear un script que "entregue" la imagen vía PHP, asì podrísa proteger tus imagenes subiendolas fuera del alcance del "Document Root" .. para que no te las vinculen directamente por el URL en un navegador sino que pasen por un script PHP tuyo de proceso donde podrás validar entre otras cosas quien o como se llaman a esos archivos. Para esto te hará falta usar header() y readfile().

Cita:
- Como hacer pra que ademas de admitir jpg, admita otros tipos de archivo como por ejemplo gif, png.?
En ese if() .. donde aparecen: $_FILES["ficheroremoto"]["type"] != 'image/jpeg' .. añade más estructuras similares separadas por && (AND) .. El dato a comparar es el formato MIME del archivo que deseas autorizar .. en imagenes es bien simple .. fijate: 'image/png' para un PNG .. lo mismo para un GIF.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 22/08/2006, 11:29
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 74
Antigüedad: 19 años, 8 meses
Puntos: 0
Muchas Gracias Cluster por tu ayuda, lo he hecho tal y como me comentas y funciona perfecto, ademas mucho mejor como tu dices de recuperar solo el nombre del archivo para enviarlo en lugar de poner toda la ruta de la imagen.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:37.