PHP - ayuda para mover archivo

 
Vista:

ayuda para mover archivo

Publicado por velmakelly (39 intervenciones) el 13/01/2010 01:45:24
Hola tengo una pagina que carga archivos al server, la he probado en windows y funciona muy bien pero cuando la subia a linux no jalo
ya configure el php.ini, incluso si carga los archivos a alguna carpeta temporal (que no se cual es), esto lo se porque puedo ver los archivos que cargue en otra pagina pero no se donde los esta dejando este es la ultima parte de mi codigo:

$archivo = $_FILES["archivo"]["tmp_name"];
$tamanio=array();
$tamanio = $_FILES["archivo"]["size"];
$tipo = $_FILES["archivo"]["type"];
$nombre_archivo = $_FILES["archivo"]["name"];
$directorio = "/var/www/html/telpra";
extract($_REQUEST);
if ( $archivo != "none" ){
$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);
if ($tamanio >1048576){
$tamanio=filesize_format($tamanio);
}
$qry = "INSERT INTO tbl_documentos ( titulo,nombre_archivo, descripcion, contenido, tamanio,tamanio_unidad, tipo,fecha,usuario ) VALUES
('$titulo','$nombre_archivo', '$descripcion','$contenido','{$tamanio[0]}','{$tamanio[1]}', '$tipo',now(),'$usuario')";

mysql_connect("localhost","user","pass") or die("No se pudo conectar a la base de datos");
mysql_select_db("telpra");
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());

mysql_close();

$nombre_archivo = $_FILES["archivo"]["name"];
if (move_uploaded_file($_FILES['archivo']['tmp_name'],$directorio . $nombre_archivo)){
$nombre_archivo = $_FILES["archivo"]["name"];
cabeceraHTML();
echo <<< HTML
<img src="FONDOS/logo.jpg" width="1016" height="60" /><BR><br><br>

<table width="600" border="1" cellspacing="0" cellpadding="1" bordercolor="#CCCCCC" align="CENTER">
<tr>
<td colspan="4" bgcolor="#115A7A">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#FFFFFF">.:
EL ARCHIVO SE CARGO CORRECTAMENTE :.</font></b><br>
</div>
</td>
</tr>
<td bgcolor="#115A7A">
<div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b><font color="#FFFFFF">.:
<a href="import.php?nombre_archivo='.$nombre_archivo.'">Importar Tabla</a><br /></center>
</td>
</tr>

HTML;
}else{
echo '<center><font face="Verdana, Arial, Helvetica, sans-serif" size="2">No fue posible subir el archivo</font></center>';
echo '<center><a href="aut_gestion_info.php">Subir Otro Archivo</a><br /></center> ';
}
}
?>


como puedo ver los archivos se que los carga, pero me manda mensaje de que no fue posible subir el archivo, yo creo que es por que no lo mueve ,yo necesito que quede en :'(
/var/www/html/telpra

podrian ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda para mover archivo

Publicado por Diego Romero (1450 intervenciones) el 13/01/2010 03:23:58
Deberías verificar si tienes los permisos adecuados en ese directorio.

Además deberías consultar la variable $_FILES["archivo"]["error"] para ver si hubo un error al subir el archivo (que el archivo esté en el directorio temporario del servidor, no significa que lo haya aceptado, podría ser demasiado grande según la configuración del mismo).

En última instancia en vez de usar move_upload_file() usa copy de esta manera:

if (copy($_FILES["archivo"]["tmp_name"],"/var/www/html/telpra".$_FILES["archivo"]["name"]) { echo "Archivo subido correctamente."; }
else { echo "Error al copiar el archivo."; }

Hay muchas cosas que se pueden mejorar en este código, por ejemplo: no uses $_REQUEST, no uses extract(), usa directamente $_POST o $_GET según sea necesario. Verificar que el nombre de archivo sea un archivo "seguro" (no ejecutable) como ser, rechazar archivos con extensión .php, .htm, .exe, .bat cosas por el estilo, o bien, por la contraria, solamente aceptar archivos que estén en una lista de "permitidos" según su extensión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda para mover archivo (errata)

Publicado por Diego Romero (1450 intervenciones) el 13/01/2010 03:24:59
Olvidé poner un ) al final de la condición del if.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda para mover archivo

Publicado por velmakelly (39 intervenciones) el 21/01/2010 17:41:46
gracias por la ayuda parece que ya funciona pero pasa algo raro la primera vez que subo un archivo me manda a la pagina de que se subio correctamente pero si reviso no hay nada, pero si lo quiero ver desde la lista de cargados si lo encuentra, cuando lo intento una segunda vez ya lo carga y las siguientes veces tambien, pero si al otro dia lo intento hace lo mismo el primer intento no lo carga, alguien tiene una idea de porque pase esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar