Foros del Web » Programando para Internet » PHP »

Error subiendo archivo

Estas en el tema de Error subiendo archivo en el foro de PHP en Foros del Web. buenas, tengo el siguiente codigo, q me coge las variables de un form: $archivo_nom=eregi_replace(" ","_",$archivo_name); if(!copy($archivo, "archivos/".$archivo_nom)) { $u="1000"; echo "error al copiar el archivo ...
  #1 (permalink)  
Antiguo 13/12/2004, 11:04
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Error subiendo archivo

buenas, tengo el siguiente codigo, q me coge las variables de un form:

$archivo_nom=eregi_replace(" ","_",$archivo_name);
if(!copy($archivo, "archivos/".$archivo_nom))
{
$u="1000";
echo "error al copiar el archivo ".$archivo_name." (".$archivo_size/$u." kb)";
}
else
{
$url = "http://www.loqsea.com/admin/noticias/archivos";
$link=$url."/".$archivo_nom;
$connect=mysql_connect("localhost","","") or die(mysql_error());

$sql = "UPDATE noticias SET titulo='$titulo', texto='$texto', archivo='$link', arch_nom='$archivo_nom' WHERE idnoticia='$idnoticia'";

y me da el siguiente error:

Warning: copy(D:\Treballs\Creasites\imagenes clientes web\handbol.jpg): failed to open stream: No such file or directory in /home/rollaram/rollarampiberica-www/admin/noticias/modificar_noticia3.php on line 6
error al copiar el archivo (0 kb) .


a quee s debido ese error?

que esta pasando? salu2 y gracias
  #2 (permalink)  
Antiguo 13/12/2004, 15:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
ferranWEB

(al margen) .. por qué almacenas rutas relativas en tus BD para hacer referencia a tus archivos? .. Si lo haces así .. vas a tener problemas cuando quieras recuperarlos o tener algo de "seguridad" en tu sistema de descargas .. o simplemente migrar de servidor tu aplicación ...

----------------

La función copy() copia archivos que están en el servidor .. debes indicar:
$archivo_tmp_name para hacerte referencia al nombre del archivo y ruta que PHP le dá por defecto al subir tu archivo ...

if(!copy($archivo_tmp_name, "archivos/".$archivo_nom))

Por lo demás .. NOOO uses copy() .. usa move_uploaded_file() en lugar de copy() .. sino te dará problemas en configuraciones de PHP tipo "safe mode" por ejemplo u otro tipo de restricciones.

Tampoco uses!!!! $archivo_propiedad para referirte a tus archivos . .usa los arrays superglobales: $_FILES['archivo']['tmp_name'] .. y afines.

Un saludo,
  #3 (permalink)  
Antiguo 14/12/2004, 03:46
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
gracias Cluster. he probado con una cosa asi, pero no me sube el archivo, ni me modifica la ruta.

if(is_uploaded_file($_FILES['archivo']['tmp_name'])){

$sql="Select idnoticia from noticias order by idnoticias desc LIMIT 0,1";
$Result=mysql_query($sql,$noticias) or die (mysql_error());
$row_Result = mysql_fetch_assoc($Result);
//chmod($_FILES['archivo']['tmp_name'], 0777);
move_uploaded_file($_FILES['foto']['tmp_name'],$_SERVER['DOCUMENT_ROOT'].'/admin/noticias/archivos/'.$archivo);}
$sql = "UPDATE noticias SET titulo='$titulo', texto='$texto', archivo='$archivo',WHERE idnoticia='$idnoticia'";


que tengo mal ahora?

salu2
  #4 (permalink)  
Antiguo 14/12/2004, 04:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

¿Que error te da ahora? Por cierto, veo una cosa muy extraña en tu primer mensaje de error:
Cita:
Warning: copy(D:\Treballs\Creasites\imagenes clientes web\handbol.jpg): failed to open stream: No such file or directory in /home/rollaram/rollarampiberica-www/admin/noticias/modificar_noticia3.php on line 6
error al copiar el archivo (0 kb) .
¿El servidor es Linux/Unix, pero $archivo tiene una ruta windows? ¿Has puesto el enctype en el <form>?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 11:34.