Newsgroup: it.comp.www.php
Titolo: Problemi gestione download personalizzato

Ciao a tutti....
Qualcuno sa' spiegarmi perche' il seguente codice in alcune circostanze non
funziona interrompendo il download ?
header("Content-Disposition: inline; filename=$fileDest");
header("Content-Length: ".filesize($fileOrg));
header("Pragma: no-cache");
readfile($fileOrg);
Da tutti i miei PC (con IE 6.0 e 5.5 ) funziona perfettamente. Alcuni utenti
invece mi dichiarano che a un certo punto Explorer segnala che il download
e' stato completato ma in realta' non e' stato prelevato l'intero file.....
Suggerimenti ??
Grazie, Ciao

 file.....
quello è un problema generalmente di proxy. (specie se la dim. supera i 2 
Mb)
gli utenti dovrebbero usare un download manager tipo getright o godzilla, 
che bypassano inoltre la cache del proxy.
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/philosophy/gif.html

 ha scritto nel messaggio
news:h8HI8.20617$8x3.4...@twister1.libero.it...


 con tutti gli utenti ?
euh... mi sfugge il concetto di download personalizzato!
:-)
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.dopoil.com/PHP/faq.php

 ha scritto nel messaggio
news:95KI8.21398$8x3.4...@twister1.libero.it...


Se hai qualche siggerimento ...
Se con gli headers "plain vanilla" che hai gia' usato non funziona,
e non ti funziona neanche il sistema (Apache only) con fpassthru(),
puoi fare cosi': e' un metodo sudicio - ma d'altra parte, se pulita
non funziona, va fatta sudicia.
diciamo che hai una directory irraggiungibile (da Web) detta $files
e il file validatore e' download.php.
Dentro download.php, se tutto va bene, fai
	GeneraNomeCasuale
	CreaDirectory($NomeCasuale)
	CopyFile($files/$file, $NomeCasuale/$file)
	Header("Location: $website/$path/$NomeCasuale/$file");
Questa cosa ha due grossi svantaggi:
	1) Occupi un vallo di spazio disco
	2) Non sai quando il tizio finira' di scaricare, quindi
	   o usi un database o devi fare una cosa del tipo
	for ($t=0; $t < 10; $t++)
	{
		if (file_exists('locks.php'))
		{
			$mytemp = random_name();
			rename('locks.php', $mytemp);
			if (file_exists($mytemp))
			{
				include 'locks.php';
				break;
			}
			else
				sleep(1); // Extra: c'è contenzioso :-)
		}
		sleep(1);
	}
	// Qui in teoria (molto in teoria) saremmo in una sezione protetta.
	if (isset($mytemp))
		unlink($mytemp);
	else
		$locks = array();
	// Ricerchiamo quali locks sono "spirati"
	$fp = fopen('locks.tmp', 'w');
	fwrite($fp, '<? $locks=array( ');
	// Aggiungiamo intanto il NOSTRO lock, con un timeout opportuno
	$now = time();
	$timeout = $now + 3600;	// Oppure magari 60 secondi ogni MB di file
	fwrite($fp, "'$NomeCasuale' => $timeout,\n");
	while(list($lock, $timeout)=each($locks))
	{
		if ($timeout < $now)
		{
			// Morto. Eliminare la directory e kelle fini
			// ke ki kontene.
			...
		}
		else
		{
			// Vivo. Finché dura.
			fwrite($fp, "'$lock' => $timeout,\n");
		}
	}
	fwrite($fp, ' ?>');
	fclose($fp);
	rename('locks.tmp', 'locks.php');
Leonardo macellaio
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.