Foros del Web » Programando para Internet » PHP »

Problema formato del fichero download

Estas en el tema de Problema formato del fichero download en el foro de PHP en Foros del Web. Hola; Resulta que subo ficheros binarios (pdf,word,xsl) al servidor con un script en php y utilizando ftp. Entro al servidor y veo que los ficheros ...
  #1 (permalink)  
Antiguo 28/03/2010, 13:54
 
Fecha de Ingreso: diciembre-2009
Mensajes: 36
Antigüedad: 14 años, 4 meses
Puntos: 0
Problema formato del fichero download

Hola;

Resulta que subo ficheros binarios (pdf,word,xsl) al servidor con un script en php y utilizando ftp.

Entro al servidor y veo que los ficheros están en la carpeta correcta, con el tamaño exacto y además están señalados como binarios.

Posteriormente, mediante otro script php, cuando intento bajarlos se me abre una pantalla en el navegadeor que me dice si quiero abrirlo o guardarlo (reconociendo hasta el formato del fichero)

Hasta aqui todo OK, pero cuando le digo abrir o guardar, me indica un mensaje que "el formato no es correcto o que el fichero es defectuos0"

¿Alguna idea de que puede estar pasando?
  #2 (permalink)  
Antiguo 28/03/2010, 14:21
 
Fecha de Ingreso: marzo-2010
Ubicación: Córdoba, Argentina
Mensajes: 21
Antigüedad: 14 años
Puntos: 0
Respuesta: Problema formato del fichero download

Podrias poner el script que utilizas? Tu comentario se entiende pero sin publicar el codigo nunca sabremos donde esta el error.
  #3 (permalink)  
Antiguo 28/03/2010, 16:43
 
Fecha de Ingreso: diciembre-2009
Mensajes: 36
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema formato del fichero download

Hola,

El script de subida es el siguiente:
$rpta1 = "";
if ($_POST["action"] == "upload") {
$tmpfile = $_FILES['archivo']['tmp_name'];
$tmpname = $_FILES['archivo']['name'];
$filesize = $_FILES['archivo']['size'];
$ruta = 'wwww.dominio.es/ruta del fichero';
$tipo = $_FILES['archivo']['type'];
// se definen los valores de la conexion ftp y el directorio al que ira el fichero
$ftpuser = "usuario_ftp";
$ftppass = "passw_ftp";
$ftppath = "ftp.dominio/ruta del fichero";
$ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath;
if ($tmpname != "") {
$fp = fopen($tmpfile, 'r');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ftpurl.$tmpname);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($tmpfile));
curl_exec($ch);
$error = curl_errno($ch);
curl_close ($ch);
if ($error == 0) {
$rpta1 = 'Archivo subido correctamente.';
} else {
$rpta1 = 'Error al subir el archivo.';
}
} else {
$rpta1 = 'Seleccionar un archivo.';
}
}

El script de bajada es el siguiente:


$id=$_GET["id"]; //nombre del fichero
$ruta = "www.dominio/ruta del fichero";
$enlace = $ruta."/".$id;
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header ("Content-Type:application/force-download");
header("Content-Type: application/octet-stream");
header ("Content-Disposition: attachment; filename=".$enlace);
header("Content-Transfer-Encoding: binary ");
readfile($enlace);

saludos

Etiquetas: download, fichero, formato
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 16:48.