Sul lato server, ottenere progressi su invio di file
Domanda
In sostanza, quello che voglio fare è quello di verificare quanto di un file mio webserver ha inviato ad un cliente, quando il client sta scaricando uno. Questo è anche possibile? Ha apache fornire qualsiasi modulo / estensione che mi avrebbe aiutato a raggiungere il mio compito?
Io uso una distro linux, apache2 e PHP5. Saluti.
Soluzione 2
Risolto esso.
I sufficiente aprire il file con PHP che voglio inviare al client.
$fh = fopen($filePath, 'r');
Poi ho calcolato il 60% del la dimensione del file scrivendo
$fileSize = filesize($filePath);
$sizeFirst = floor(($fileSize / 100) * 60);
Ora la variabile $ sizeFirst contiene la lunghezza del primo 60% del file, in un valore numerico. Per calcolare il resto il 40% che uso:
$sizeLast = $fileSize - $sizeFirst;
Ora posso scrivere il primo 60%, fare la mia azione, e poi scrivere outh il resto del 40%.
$dataFirst = fread($fh, $sizeFirst);
echo($dataDirst);
// Do my action here.
$dataSecond = fread($fh, $sizeSecond);
echo($dataSecond);
exit();
Ho bisogno di impostare l'intestazione (); prima di scrivere questo, il Content-length, Content-type e Content-Disposition devono essere impostati per inviare un colpo di testa valido e fileContent al cliente.
Speranza che aiuta qualcuno.
Altri suggerimenti
Browser fornisce questa funzionalità se il file è corretto "Content-length" intestazione set. Perché vuoi implementare questo nella tua pagina?