Newsgroup: it.comp.www.php
Titolo: download

vorrei effettuare il download tramite pagina php ma non ci riesco....
ho usato il seguente codice,dove sbaglio?
<?php
header("content-type: Application/octet-stream");
header("content-disposition: attachment; filename=$nome_file");
header("content-description: Download Php");
header("content-lenght: $dimensioni_file");
readfile($nome_file);
?>

 ho usato il seguente codice,dove sbaglio?
Che cosa non fa di preciso? Che errori restituisce? Che cosa dovrebbe
fare invece?
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.


allora il codice completo è questo :
<?
$file=$file.".zip";
header("HTTP/1.1 200 OK");
header("content-disposition: attachment; filename=$file");
header('ETag: "0-2b-3f7a7c65"');
header("Accept-Ranges: bytes");
header("Content-Length: ".filesize($file));
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
header("Connection: close");
header("content-type: Application/zip");
readfile($file);
include("database.inc.php");
global $db_host,$db_name,$db_user, $db_password,$re,$re4;
$ip=$_SERVER["REMOTE_ADDR"];
$dat=date("d/m/Y H:i") . "\t";
 $db = mysql_connect($db_host, $db_user, $db_password);
  if ($db == FALSE)
  die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
  mysql_select_db($db_name, $db);
  or die ("Errore nella selezione del database. Verificare i parametri
nel file config.inc.php");
  $query = "INSERT INTO $re4 (ip,data,file) VALUES
('$ip','$dat','$file' )";
  $res=mysql_query($query, $db);
  mysql_close($db);
?>
Vien salvato un file .zip che a volte contiene un solo file di lunghezza
pari ad un byte,altre volte all'interno del file zip compare un file
senza estensione con lunghezza  pari a 9087 che è a sua volta un file
zip.....
semplicemente vorrei far scaricare un file zip tramite php in maniera da
poter loggare le attività svolte dall'utente

 da poter loggare le attivit` svolte dall'utente
Inizia con questo codice:
<?php 
$file = $file . ".zip";
header ( "Content-Type: application/zip" );
header ( "Accept-Ranges: bytes" );
header ( "Content-Length: " . filesize ($file) );
header ( "Content-Disposition: attachment; filename=" . $file . ";" );
readfile ($file);
?>
Ovviamente se $file viene passato tramite query string sarebbe
opportuno modificare la seconda riga con:
$file = $_GET["file"] . ".zip";
Successivamente aggiungi mano a mano il codice necessario.
Ti suggerisco di inserire un codice del genere:
<?php 
// ...
readfile ($file);
ob_start ();
// codice di logging
ob_end_clean ();
?>
In questo modo eviterai che eventuali output di errori generati dal
codice di logging vadano ad "inquinare" lo stream binario restituito
dallo script.
-- 
I am what I am, I do what I can


non funziona....l'output viene diretto sul monitor...
"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel
messaggio news:fvO4c.70034$FJ6.2...@twister1.libero.it...


anzi,ha lo stesso problema del mio script :-(
ho provato tutte le combinazioni possibili

 ho provato tutte le combinazioni possibili
No, il codice postato funziona perfettamente.
Test online:
http://setecastronomy.stufftoread.com/header.php?file=header



anche a me in locale funziona perfettamente(provato con easyphp) come
del resto funzionava ank l'altro script.Ho scaricato il tuo header e
l'ho messo sul mio sito.Verifica di persona lo scherzo che fa sia con il
mio che con il tuo script: 
www.ingevs.altervista.org
sezione download.
Ti ringrazio per l'aiuto k mi stai dando

Hai rinunciato?.....
modificando in questo modo(vedi sotto) lo script,i file non risultano
corrotti ma il nome viene ignorato:gli allegati vengono salvati come
scarika(ossia come il nome dello script).Rinominando in qualcosa.zip
vengono aperti senza nessun problema.
header ( "Content-Disposition: attachment; filename=" . $file . ";" );
header ( "Content-Type: application/octet-stream" );
header ( "Accept-Ranges: bytes" );
header ( "Content-Length: " . filesize ($file) );
//header('ETag: "0-2b-3f7a7c65"');
//header("Content-Encoding: gzip");
//header ( "Content-Type: application/zip" );
//header("Vary: Accept-Encoding");
header("Connection: close");

Ho messo online una pagina di prova con 3 script
www.ingevs.altervista.org/prova.htm

Alcibiade wrote:

Scusa, ma dici "modificando", ma hai mai provato esattamente il codiche
che ho postato?
[mi quoto]
<?php 
$file = $file . ".zip";
header ( "Content-Type: application/zip" );
header ( "Accept-Ranges: bytes" );
header ( "Content-Length: " . filesize ($file) );
header ( "Content-Disposition: attachment; filename=" . $file . ";" );
readfile ($file);
?>
[/quoto]


 che ho postato?
CUT..
Forse non hai visto il post successivo...ho provato il tuo script ma non
mi funziona lo stesso.I problemi sono: o il file zip risulta
corrotto,oppure è integro ma il nome è quello dello script....invece di
fare da mediatore fra te e l'errore ho messo su una pagina di prova così
la situazione è più chiara :
www.ingevs.altervista.org/prova.htm
ci sono 3 collegamenti che usano 3 script diversi(c'è anche quello che
mi hai suggerito) per scaricare il file .