2010-06-28 8 views
0

Hey, j'essaie de changer le nom d'un fichier en cours de téléchargement sur mon site à partir d'un serveur externe.Modifier les informations de téléchargement de fichier PHP/JS

Actuellement, chaque fois que je modifie les informations d'en-tête, il faut juste un certain temps pour que le téléchargement commence, donc y a-t-il un moyen de le faire sans changer les en-têtes? Ou sinon aucune raison pour laquelle cela prendrait une éternité à charger avec mes en-têtes?

C'est ce que je fais

 @header("Cache-Control: no-cache, must-revalidate"); 
     @header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 
     @header("Content-Length: ".getfilesize($url)); 
     @header("Content-Disposition: attachment; filename=".$name); 
     @header("Content-type: audio/mpeg;\r\n"); 
     die(@readfile($url)); 

Pourrait-il être fait en javascript ou quelque chose à la place? Et pourrais-je faire si tous les téléchargements commencent sans ouvrir dans comme windows media player, quicktime etc.

Merci :)

+1

pourquoi o pourquoi utilisez-vous le suppresseur de message '@'? – Artefacto

+0

Cela prend beaucoup de temps car votre serveur télécharge le fichier lui-même afin d'obtenir la taille de fichier de getfilesize(). Vous pouvez essayer d'utiliser CURL pour obtenir les en-têtes du fichier distant et obtenir la taille de fichier de cette façon pour éviter le ralentissement. – Mala

+0

Ok, je vais essayer de boucle. –

Répondre

1

Il faut un « reallllllyyyyyy longtemps » parce que votre chargement du fichier sur votre serveur d'abord, puis envoyez-le au client chaque fois que quelqu'un clique sur le lien de téléchargement.

+0

merci! :) Y at-il un moyen de le faire sans le charger sur mon serveur en premier? –

Questions connexes