Foros del Web » Programando para Internet » PHP »

Problema con las descargas

Estas en el tema de Problema con las descargas en el foro de PHP en Foros del Web. En mi web, tengo una libreria de documentos para descargar, pero hay algunos, que cuando se descargan tienen un pequeño problema: No se abren bien!!!!!!! ...
  #1 (permalink)  
Antiguo 17/03/2004, 03:43
 
Fecha de Ingreso: diciembre-2003
Mensajes: 222
Antigüedad: 14 años
Puntos: 2
Problema con las descargas

En mi web, tengo una libreria de documentos para descargar, pero hay algunos, que cuando se descargan tienen un pequeño problema: No se abren bien!!!!!!! O me salen solo cuadraditos y simbolos raros!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Alguien sabe porque puede ser???? Gracias a todos
  #2 (permalink)  
Antiguo 17/03/2004, 03:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

cuadraditos y simbolos raros = datos binarios mostrandose en formato texto.

¿Que tipos de ficheros te fallan? Porque un .doc de word o un PDF son ficheros binarios que almacenan informacion de texto, pero son binarios. Si al abrirlos los muestras como texto, no como binario, salen caracteres raros.

Saludos.

PD: ¿Que tiene que ver esto con PHP? No dices en ningun sitio que la descarga la hagas desde un script PHP, o que almacenes los ficheros via PHP en una base de datos, u otro tema relacionado con PHP.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/03/2004, 04:01
 
Fecha de Ingreso: diciembre-2003
Mensajes: 222
Antigüedad: 14 años
Puntos: 2
PUES ES QUE LO HE HECHO CON UN SCRIPT DE PHP...
Lo que hago para subir los ficheros, es el tipico formulario, que que deja el fichero via ftp, en un servidor. Renombrado al id del registro de la bbdd al que corresponde al fichero. Y luego se descarga desde el mismo servidor renombrandolo...
pero al descargarlo da fallos en algunos....

el codigo es el siguiente--
Para la descarga:

$idd=$_GET["id"];
echo $idd;







$res=mysql_query("SELECT * FROM documentos WHERE iddoc=$idd")or die ("no se puede realizar la consulta");
while($row = mysql_fetch_array($res)){

$downloads=$row["descargas"]+1;
$update=mysql_query("UPDATE documentos set descargas='$downloads' WHERE iddoc=$idd")or die("no se pueden actualizar las descargas");


$name = $row[ruta];
$fichero="/home/mescobar/archivos/$row[iddoc]";
if($fp = fopen($fichero, 'rb')){
// mandamos las cabeceras correctas
header("Content-Type:application/x-download\n");
header("Content-Disposition:attachment;filename=".$name."\n");
header("Content-Length: ".filesize($fichero)."\n\n");
// dump the picture and stop the script
fpassthru($fp);
}else{
echo "tio, el archivo no se abre";
}
exit;
unlink($fichero);

}


Y para la subida remota del fichero al servidor:

$file_name = $_FILES['uploadFile']['name'];

// strip file_name of slashes
$file_name = stripslashes($file_name);
$file_name = str_replace("'","",$file_name);
$copy = copy($_FILES['uploadFile']['tmp_name'],$almacen."/".$file_name);
// check if successfully copied
if($copy){
echo "$file_name | uploaded sucessfully!<br>";
}else{
echo "$file_name | could not be uploaded!<br>";
}
$x=ftp_connect ("ftp.xxxxxxxxx",21);
if($x !=0){
echo "<br>Conexión FTP activada";
}else{
echo "<br>No se activo lo conexión FTP";
}

if(ftp_login($x,"111111","111111")){
echo "<br>El login y la password han sido aceptados";
ftp_chdir($x,"/home/mescobar/archivos");
//echo ftp_pwd($x);
if(ftp_put($x,"/home/mescobar/archivos/$file_name",
"$almacen/$file_name",FTP_BINARY)){
ftp_rename($x,"$file_name","$nombre");
echo "<br>El archivo $file_name ha sido subido con exito al servidor";
unlink("$almacen/$file_name");
return $file_name;
}else{
echo "<br>El archivo $file_name no ha podido ser subido al servidor";
return "";
}
}else{
echo "Error en login o password";
}
ftp_quit($x);



Si encuentras alli, porque falla te estare eternamente agradecido. Muchas gracias
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:42.