Foros del Web » Programando para Internet » PHP »

problema al subir fotos

Estas en el tema de problema al subir fotos en el foro de PHP en Foros del Web. hola, estoy intentando que mis usuarios suban fotos, y me da un error, supuestamente de permisos, pero yo he puesto el archivo en 777, nose ...
  #1 (permalink)  
Antiguo 20/08/2009, 16:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 382
Antigüedad: 15 años, 7 meses
Puntos: 2
problema al subir fotos

hola, estoy intentando que mis usuarios suban fotos, y me da un error, supuestamente de permisos, pero yo he puesto el archivo en 777, nose en que falla, da este error


Warning: copy(archivosusuario/fotos/2fa0653c9c) [function.copy]: failed to open stream: Permission denied in /home/a4442338/public_html/pages/subirfotos.php on line 33

y este es mi codigo que recoge la foto....

Código PHP:
<?
include('conexion.php');
session_start();
if(
$_POST["Subir"]){
$id=$_SESSION[id_usuario];
$titulo=utf8_decode($_POST["titulo"]);



function 
genera_random($longitud){  
    
$exp_reg="[^A-Z0-9]";  
    return 
substr(eregi_replace($exp_reg""md5(rand())) .  
       
eregi_replace($exp_reg""md5(rand())) .  
       
eregi_replace($exp_reg""md5(rand())),  
       
0$longitud);  
 }
$nombre genera_random(10);

$file $_FILES['fileField']['name'];
$fecha=date("Y/m/d H:i:s");
$carpeta="archivosusuario/fotos";


if(
$file=="")
{
print 
"no hay archivo";}
else{

$dirfinal = ($carpeta "/" $nombre);

if (
is_uploaded_file($_FILES['fileField']['tmp_name'])) {
     
copy($_FILES['fileField']['tmp_name'], $dirfinal);

 
mysql_query("INSERT INTO fotos(id_usuario,titulo,fecha,codigo)
values ('$id','$titulo','$fecha','$nombre') "
);}


print 
'Archivo subido';





}}
?>
__________________
la experiencia es la mejor de las escuelas, pero la obtienes cuando ya no la necesitas.

Yo soy aquel que mucho hace trabajar a la gente del foro, pero siempre gratifico con un karma
  #2 (permalink)  
Antiguo 20/08/2009, 16:53
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: problema al subir fotos

y pq no usas move_uploaded_file()

__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 20/08/2009, 17:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 382
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: problema al subir fotos

no me aclaro, donde tengo que poner eso?

estoy dudando entre:
if (is_uploaded_file($_FILES['fileField']['tmp_name'])) {

y este
copy($_FILES['fileField']['tmp_name'], $dirfinal);
__________________
la experiencia es la mejor de las escuelas, pero la obtienes cuando ya no la necesitas.

Yo soy aquel que mucho hace trabajar a la gente del foro, pero siempre gratifico con un karma
  #4 (permalink)  
Antiguo 21/08/2009, 17:28
 
Fecha de Ingreso: agosto-2008
Mensajes: 382
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: problema al subir fotos

ayuda porfavor
__________________
la experiencia es la mejor de las escuelas, pero la obtienes cuando ya no la necesitas.

Yo soy aquel que mucho hace trabajar a la gente del foro, pero siempre gratifico con un karma
  #5 (permalink)  
Antiguo 21/08/2009, 17:39
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: problema al subir fotos

dale un vistazo a este tuto. Saludos
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 22/08/2009, 02:47
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema al subir fotos

Cita:
Iniciado por only_skating Ver Mensaje
no me aclaro, donde tengo que poner eso?

estoy dudando entre:
if (is_uploaded_file($_FILES['fileField']['tmp_name'])) {

y este
copy($_FILES['fileField']['tmp_name'], $dirfinal);
en lugar de copy usa lo que dijo emiliodeg
  #7 (permalink)  
Antiguo 22/08/2009, 04:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 382
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: problema al subir fotos

me da los siguientes errores

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php0TRzXx' to 'archivosusuario/fotos/2b724a3137' in /home/a4442338/public_html/pages/subirfotos.php on line 33


Warning: move_uploaded_file(archivosusuario/fotos/2b724a3137) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/a4442338/public_html/pages/subirfotos.php on line 33

os dejo el archivo

Código PHP:
<?
include('conexion.php');
session_start();
if(
$_POST["Subir"]){
$id=$_SESSION[id_usuario];
$titulo=utf8_decode($_POST["titulo"]);



function 
genera_random($longitud){  
    
$exp_reg="[^A-Z0-9]";  
    return 
substr(eregi_replace($exp_reg""md5(rand())) .  
       
eregi_replace($exp_reg""md5(rand())) .  
       
eregi_replace($exp_reg""md5(rand())),  
       
0$longitud);  
 }
$nombre genera_random(10);

$file $_FILES['fileField']['name'];
$fecha=date("Y/m/d H:i:s");
$carpeta="archivosusuario/fotos";


if(
$file=="")
{
print 
"no hay archivo";}
else{

$dirfinal = ($carpeta "/" $nombre);

if (
is_uploaded_file($_FILES['fileField']['tmp_name'])) {
     
move_uploaded_file($_FILES['fileField']['tmp_name'], $dirfinal);

 
mysql_query("INSERT INTO fotos(id_usuario,titulo,fecha,codigo)
values ('$id','$titulo','$fecha','$nombre') "
);}


print 
'Archivo subido';





}}
?>
__________________
la experiencia es la mejor de las escuelas, pero la obtienes cuando ya no la necesitas.

Yo soy aquel que mucho hace trabajar a la gente del foro, pero siempre gratifico con un karma
  #8 (permalink)  
Antiguo 22/08/2009, 08:36
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema al subir fotos

Cita:
Iniciado por only_skating Ver Mensaje
me da los siguientes errores

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php0TRzXx' to 'archivosusuario/fotos/2b724a3137' in /home/a4442338/public_html/pages/subirfotos.php on line 33


Warning: move_uploaded_file(archivosusuario/fotos/2b724a3137) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/a4442338/public_html/pages/subirfotos.php on line 33

os dejo el archivo

Código PHP:
<?
include('conexion.php');
session_start();
if(
$_POST["Subir"]){
$id=$_SESSION[id_usuario];
$titulo=utf8_decode($_POST["titulo"]);



function 
genera_random($longitud){  
    
$exp_reg="[^A-Z0-9]";  
    return 
substr(eregi_replace($exp_reg""md5(rand())) .  
       
eregi_replace($exp_reg""md5(rand())) .  
       
eregi_replace($exp_reg""md5(rand())),  
       
0$longitud);  
 }
$nombre genera_random(10);

$file $_FILES['fileField']['name'];
$fecha=date("Y/m/d H:i:s");
$carpeta="archivosusuario/fotos";


if(
$file=="")
{
print 
"no hay archivo";}
else{

$dirfinal = ($carpeta "/" $nombre);

if (
is_uploaded_file($_FILES['fileField']['tmp_name'])) {
     
move_uploaded_file($_FILES['fileField']['tmp_name'], $dirfinal);

 
mysql_query("INSERT INTO fotos(id_usuario,titulo,fecha,codigo)
values ('$id','$titulo','$fecha','$nombre') "
);}


print 
'Archivo subido';





}}
?>
debes tener permisos de escritura en el directorio de destino, ademas de necesitar la ruta completa, que siempre es mejor que una relativa.
  #9 (permalink)  
Antiguo 23/08/2009, 06:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 382
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: problema al subir fotos

ok, ahora ya sube el archivo, pero me da el maldito error de sessesion caché.

he añadido unas cuantas cosas para asegurarme que suben una imagen y no cualquier cosa, PERO no funcionan porque he puesto un video y lo ha subido.:S si podeis echarmele un vistazo

Código PHP:
<?
include('conexion.php');
session_start();
if(
$_POST["Subir"]){
$id=$_SESSION[id_usuario];
$titulo=utf8_decode($_POST["titulo"]);
function 
genera_random($longitud){  
$exp_reg="[^A-Z0-9]";  
return 
substr(eregi_replace($exp_reg""md5(rand())) .  
eregi_replace($exp_reg""md5(rand())) .  
eregi_replace($exp_reg""md5(rand())),  
0$longitud);  
}
$nombre genera_random(10);
$file $_FILES['fileField']['name'];
$fecha=date("Y/m/d H:i:s");
$carpeta="archivosusuario/fotos";
if(
$file=="")
if(
$file['archivo']['size'] < 20000)
if(
$file['archivo']['type']!="image/gif"){
print 
"Archivo no cumple condiciones";}
else{
$dirfinal = ($carpeta "/" $nombre);
if (
is_uploaded_file($_FILES['fileField']['tmp_name'])) { 
move_uploaded_file($_FILES['fileField']['tmp_name'], $dirfinal);
mysql_query("INSERT INTO fotos(id_usuario,titulo,fecha,codigo)
values ('$id','$titulo','$fecha','$nombre') "
);}
header("Location:uploadfotos.php");
}}
?>
__________________
la experiencia es la mejor de las escuelas, pero la obtienes cuando ya no la necesitas.

Yo soy aquel que mucho hace trabajar a la gente del foro, pero siempre gratifico con un karma
  #10 (permalink)  
Antiguo 23/08/2009, 08:10
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema al subir fotos

Cita:
Iniciado por only_skating Ver Mensaje
ok, ahora ya sube el archivo, pero me da el maldito error de sessesion caché.

he añadido unas cuantas cosas para asegurarme que suben una imagen y no cualquier cosa, PERO no funcionan porque he puesto un video y lo ha subido.:S si podeis echarmele un vistazo

Código PHP:
<?
include('conexion.php');
session_start();
if(
$_POST["Subir"]){
$id=$_SESSION[id_usuario];
$titulo=utf8_decode($_POST["titulo"]);
function 
genera_random($longitud){  
$exp_reg="[^A-Z0-9]";  
return 
substr(eregi_replace($exp_reg""md5(rand())) .  
eregi_replace($exp_reg""md5(rand())) .  
eregi_replace($exp_reg""md5(rand())),  
0$longitud);  
}
$nombre genera_random(10);
$file $_FILES['fileField']['name'];
$fecha=date("Y/m/d H:i:s");
$carpeta="archivosusuario/fotos";
if(
$file=="")
if(
$file['archivo']['size'] < 20000)
if(
$file['archivo']['type']!="image/gif"){
print 
"Archivo no cumple condiciones";}
else{
$dirfinal = ($carpeta "/" $nombre);
if (
is_uploaded_file($_FILES['fileField']['tmp_name'])) { 
move_uploaded_file($_FILES['fileField']['tmp_name'], $dirfinal);
mysql_query("INSERT INTO fotos(id_usuario,titulo,fecha,codigo)
values ('$id','$titulo','$fecha','$nombre') "
);}
header("Location:uploadfotos.php");
}}
?>
Estas lineas no estan bien:
if($file['archivo']['size'] < 20000)
if($file['archivo']['type']!="image/gif"){
Ya que $file, tiene el nombre del fichero subido, el nombre original.
entonces, no puedes luego intentar acceder a ese string como un array multidimensional.
tal vez quieras hacer algo asi:

$file = $_FILE['fileField'];

con lo que luego si puedes acceder a esa variable $file de este modo

$file['name']
$file['tmp_name']
$file['size']
$file['type']
....
saludos

EDITO: Por cierto, en los if's tambien hay errores de concepto, no estan bien planteados.

Última edición por DooBie; 23/08/2009 a las 08:17
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 19:23.