Foros del Web » Programando para Internet » PHP »

Problemas con el upload

Estas en el tema de Problemas con el upload en el foro de PHP en Foros del Web. Hola tengo este codigo para subir imagenes renombrarlas y añadir la dire a la database. El codigo es este. Código PHP: <?php $path  =  "usuarios/" ...
  #1 (permalink)  
Antiguo 09/06/2003, 18:05
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
Problemas con el upload

Hola tengo este codigo para subir imagenes renombrarlas y añadir la dire a la database.
El codigo es este.
Código PHP:
<?php

$path 
"usuarios/";
$max_size 500000;

if (
is_uploaded_file($userfile)) {

if (
$userfile_size>$max_size) { echo "EL ARCHIVO ES DEMASIADO GRANDE (max. 40 KB).<br>\n"; exit; }

if ((
$userfile_type=="image/gif") || ($userfile_type=="image/pjpeg")) {

if (
file_exists($path $userfile_name)) { echo "EL ARCHIVO YA EXISTE.<br>\n"; exit; }

$archivo fopen('numimages.txt''w'); //abrimos el archivo

$numero fread($archivofilesize('numimages.txt'));
//con esto ya tenemos en $numero el numero 
//que este dentro del archivo

$extencion split('.'$userfile_name); //aca sacamnos la extencion

$extencionN $extencion[count($extencion) - 1];

$destino "img$numero.$extencionN";
//con esto ya tenemos la imagen con el nombre que debe estar
//ahora debesmos guardar en el archivo un numero mas
//al que tenia

fwrite($archivo, ++$numero); //escribimos el numero nuevo

//ahora solo falta hacer el copy

$res copy($userfile$destino);
if (!
$res) {
echo 
"UPLOAD FALLADO!<br>\n"; exit; }
else
echo 
"UPLOAD EXITOSO!<br>\n";

include 
"conexion.php";
$sql "INSERT INTO registrados (imagen) VALUES ('$destino') where login='$_POST[login]'";
$result mysql_query($sql);

} else { echo 
"FORMATO DEL ARCHIVO ERRONEO (solo jpeg o gif).<br>\n"; exit; }

}
?>
Y me pone este error al intentar subir una imagen .

Warning: Unable to create 'img.': Permission denied in /home/ultima/public_html/bf1942spain/upimagen.php on line 33
UPLOAD FALLADO!

Me podeis decir a ke se debe este error?
__________________
Webmaster DE :

http://www.bf1942spain.com
  #2 (permalink)  
Antiguo 09/06/2003, 18:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Dale permisos de escritura a esa carpeta de tu servidor .. vía tu cliente FTP con CHMOD .. por ejemplo 666 o 777

Con respecto a:
$res = copy($userfile, $destino);

Y si usas ..
Código PHP:
$res move_uploaded_file($userfile$destino); 
Mejor ..

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 09/06/2003, 18:31
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
ahora me pone:

Warning: Unable to create 'img.': Permission denied in /home/ultima/public_html/bf1942spain/upimagen.php on line 33

Warning: Unable to move '/tmp/phpqyS0ni' to 'img.' in /home/ultima/public_html/bf1942spain/upimagen.php on line 33
UPLOAD FALLADO!
ya le di permisos
__________________
Webmaster DE :

http://www.bf1942spain.com
  #4 (permalink)  
Antiguo 09/06/2003, 18:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Estas usando algún servicio de hosting gratuito? ...

Parece que está desactivado el "file Upload".

Revisa en tu php.ini (lo puedes ver en un phpinfo() ...):
open_basedir = ...

Si apunta a tu mismo directorio .. no vas a poder copiar desde el directorio temporal donde PHP sube los archivos (ese /tmp que está fuera de tu servidor virtual ..) a tu destino en tu sitio ...

Un saludo,

pd: .. esa línea 33 .. cual es? .. la del $res= copy() ? .. o cual exactamente ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 10/06/2003, 04:02
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
Hola la linea 33 es la de:
Código PHP:
$res move_uploaded_file($userfile$destino); 
no uso un servidor de hostin gratuito.
Hay otra forma
?
__________________
Webmaster DE :

http://www.bf1942spain.com
  #6 (permalink)  
Antiguo 10/06/2003, 04:29
Avatar de jama  
Fecha de Ingreso: junio-2003
Mensajes: 41
Antigüedad: 14 años, 6 meses
Puntos: 0
Prueba antes de subirlo la función is_uploaded_file(), que te comprueba que se puede mover, y luego move_uploaded_file()
Pregunta: ¿quien es $destino = "img$numero.$extencionN"? es que no lo veo. A ver si el pb está aquí.
  #7 (permalink)  
Antiguo 10/06/2003, 15:35
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0


si debo tenerlo desactivado. me pone en el phpinfo:
open_basedir | no value | no value


como el hosting es pagado no puedo cambiar el php.ini

Hay otro metodo???
__________________
Webmaster DE :

http://www.bf1942spain.com

Última edición por oscar2000; 10/06/2003 a las 15:35
  #8 (permalink)  
Antiguo 10/06/2003, 16:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
como el hosting es pagado no puedo cambiar el php.ini

Hay otro metodo???
Directamente haz tu consulta a los Srs. de tu soporte técnico .. explicales que quieres hacer un Upload HTTP via PHP y les comentas sobre el estado de esa directiva y el error que te marca al usar move_uploaded_file() (no sea que tengan desactivada esa función .. ?¿)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 11/06/2003, 08:30
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
Y ke parametros habria ke konfigurar en el php.ini
pa ke funcionase el fileupload?

es ke me los piden para configurarlo :)
__________________
Webmaster DE :

http://www.bf1942spain.com
  #10 (permalink)  
Antiguo 11/06/2003, 08:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

En uno de los comentarios del manual dicen que el destino debe ser la ruta completa, y tu solo estas poniendo el nombre del fichero. Prueba con:
Código PHP:
$res move_uploaded_file($userfile$_SERVER['DOCUMENT_ROOT'].'/directorio/de/la/web/'.$destino); 
asumiendo que usas PHP >4.1 y que quieres guardarlo en un subdirectorio dentro del sitio web.

Y por cierto, tu codigo esta fallando al leer $numero y $extension, porque si te fijas intenta crear el fichero 'img.'.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 11/06/2003, 08:52
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
josemi
y como puedo arreglar eso????
__________________
Webmaster DE :

http://www.bf1942spain.com
  #12 (permalink)  
Antiguo 11/06/2003, 08:52
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Y si los administradores del sitio web te pide cuales son los parametros, eso les deja en bastante mal lugar, en mi opinion.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #13 (permalink)  
Antiguo 12/06/2003, 08:16
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
(el problema de el numero y la img. y eso)

Nada me sige poniendo esto:

Warning: Unable to create '/home/ultima/public_html/bf1942spain/img.': Permission denied in /home/ultima/public_html/bf1942spain/upimagen.php on line 33

Warning: Unable to move '/tmp/phpej8TVA' to '/home/ultima/public_html/bf1942spain/img.' in /home/ultima/public_html/bf1942spain/upimagen.php on line 33
UPLOAD FALLADO!

nada¿
__________________
Webmaster DE :

http://www.bf1942spain.com

Última edición por oscar2000; 12/06/2003 a las 08:16
  #14 (permalink)  
Antiguo 12/06/2003, 08:29
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

¿Tiene PHP permiso para crear ficheros en ese directorio? Los permisos los maneja el sistema operativo, no la configuracion de PHP. Mira si el directorio tiene un permiso 777 o 666 (o cualquiera que le de permisos de escritura a todo el mundo), ya que normalmente no es el mismo usuario PHP (o Apache) que el FTP (es decir, que escribas ficheros mediante FTP en ese directorio no quiere decir que PHP tenga permisos para hacerlo). Y preguntale a tu administrador si el PHP instalado puede crear ficheros, el deberia saberlo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #15 (permalink)  
Antiguo 12/06/2003, 08:33
 
Fecha de Ingreso: diciembre-2002
Mensajes: 52
Antigüedad: 15 años
Puntos: 0
ya le puse permisos pero sigue sin funcionar.
Hay otro metodo?
es ke no puedoactivar la variable esa del php.ini :(
__________________
Webmaster DE :

http://www.bf1942spain.com
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 05:36.