Foros del Web » Programando para Internet » PHP »

subir imagenes al servidor

Estas en el tema de subir imagenes al servidor en el foro de PHP en Foros del Web. Hola a todos: Quiero realizar una página para poder subir imagenes a servidor y no consigo hacerlo, envio el código que utilizo a ver si ...
  #1 (permalink)  
Antiguo 05/10/2004, 11:51
 
Fecha de Ingreso: noviembre-2002
Ubicación: España
Mensajes: 24
Antigüedad: 21 años, 5 meses
Puntos: 0
subir imagenes al servidor

Hola a todos:
Quiero realizar una página para poder subir imagenes a servidor y no consigo hacerlo, envio el código que utilizo a ver si alguien me puede reportar el error que estoy cometiendo.
Gracias a todos de antemano por atender este mensaje. saludos.


<html>
<body>
<form action="enviar_imagen.php" method="post" enctype="multipart/form-data" name="form1">
<table width="485" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="485">cadenatexto
<input name="cadenatexto" type="text" id="cadenatexto">
<input name="MAX_FILE_SIZE" type="hidden" id="MAX_FILE_SIZE" value="100000"></td>
</tr>
<tr>
<td>enviar un nuevo archivo&nbsp;
<input name="userfile" type="file" >
<input type="submit" name="Submit" value="Enviar"> </td>
</tr>
</table>
</form>
</body>
</html>




<html>
<body>
<?php
$cadenatexto=$_POST["cadenatexto"];
echo "Escribió en el campo de texto: ".$cadenatexto. "<br><br>\n";

$nombre_archivo=$HTTP_POST_FILES['userfile']['name'];
$tipo_archivo=$HTTP_POST_FILES['userfile']['type'];
$tamano_archivo=$HTTP_POST_FILES['userfile']['size'];

if(!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpg") && strpos($tamano_archivo < 100000))){
echo "no es correcta";
}else{
if(move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
echo "el archivo se ha cargado bien";
}else{
echo "ocurrió un error";
}
}

?>
</body>
</html>
  #2 (permalink)  
Antiguo 05/10/2004, 12:16
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
creo que es por que no especificas la ruta del archivo en $nombre_archivo, esta variable solo tendra el nombre del archivo sin la ruta(ej "archivo.jpg"), tal vez te funcione cambiando la linea:

$nombre_archivo=$HTTP_POST_FILES['userfile']['name'];
por
$nombre_archivo=$_SERVER["DOCUMENT_ROOT"] . "carpetadeimagenes/" . $HTTP_POST_FILES['userfile']['name'];

checa tambien que esten bien confugurados los permisos para la carpeta
  #3 (permalink)  
Antiguo 05/10/2004, 12:20
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Pero que error

Que error es el que te da porque nadie es adivino?
Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 05/10/2004, 12:51
Avatar de Camarex  
Fecha de Ingreso: enero-2003
Ubicación: Monterrey NL
Mensajes: 148
Antigüedad: 21 años, 2 meses
Puntos: 0
A mi me parece que no le da error, creo que lo que pasa es que su script simplemente no funciona. y el lo que quere saber es que esta haciendo mal o me equivoco Xaquilixutt?

Saludos
__________________
Si el empleo fuera como rentar una casa, entonces no rentes para siempre y busca la manera de Comprar. ;-)
Frase: Edgar Camarena
  #5 (permalink)  
Antiguo 05/10/2004, 14:33
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Claro

Ya entiendo. Como bien dice xcorpion, lo que aparentemente pasa es que no indicas donde se va a guardar tu fichero. Prueba de esta forma:
Código PHP:
$nombre_archivo $_SERVER["DOCUMENT_ROOT"]."carpetadeimagenes/"$HTTP_POST_FILES['userfile']['name']; 
OJO: La carpeta carpetadeimagenes debe tener permisos de escritura para que PHP pueda copiar el fichero dentro de la misma, y otra cosa $_SERVER['DOCUMENT_ROOT'] es solo para Apache, no funciona con IIS.

Salu2
__________________
Ing. Reynier Pérez Mira
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 22:30.