Mon script PHP émet le contenu d'un fichier .SQL. Après avoir été appelée par une demande postale de mon client Delphi Desktop. P>
Voici ce qui se passe: p>
mysqldump code> et génère un fichier - xdb_backup.sql code> li>
- Le script, alors
inclure "xdb_backup.sql"; code> qui l'imprimera et le retournera sur le client de bureau, alors qu'il supprime le fichier SQL. LI>
ol>
Le problème est que la taille du fichier SQL peut varier (pour les tests, j'ai généré un qui est de 6 Mo). J'aimerais que mon client de bureau puisse montrer la progression, mais le script PHP n'expose pas la taille de sa taille. Je n'ai donc aucun progressbar.max code> valeur à attribuer. P>
Comment puis-je faire mon script PHP Laissez le client savoir à quel point il est grand avant que tout ce qui soit dépassé code>? P>
Remarque: le téléchargement du fichier SQL n'est pas une option, car le script doit le détruire. :) p>
3 Réponses :
vous feriez
header("Content-Length: " . $fsize);
Vous devez envoyer un en-tête de longueur de contenu à l'aide de la fonction code> de l'en-tête code>. Quelque chose comme ceci: p>
Vous voudrez peut-être envoyer le fichier à l'aide de en-tête ("Longueur de contenu: "FileSize (" Yourfile.SQL ")); CODE> P>
ReadFile code> au lieu d'inclure. p>
Le client connaît donc la taille avant qu'il ne commence à traiter le fichier SQL?
Vous pouvez définir l'en-tête de longueur de contenu avec la taille de xdb_backup.sql p>
La seule façon de voir que cela fait que cela fait une approximation approximative basée sur le nombre de champs de données il y a et à quel point ils ont tendance à être. Mais très intéressant q +1
@ObTo Merci pour le +1 :) - Il s'agit de la réponse était simple cependant. :)