2010-07-01 7 views
1

Possible en double:
HTML Compress File Upload?Comment compresser des fichiers de 100 Mo pendant le téléchargement (avant) afin d'augmenter la vitesse de téléchargement?

J'ai plaint du client que mon site prend plus de temps pour télécharger le temps de 100 Mo (je sais que ce devoir de prendre plus de temps à cause de cette taille), donc je prévois de télécharger des fichiers de sorte qu'ils soient compressés avant le téléchargement et sont téléchargés à l'emplacement désiré, puis est décompressé avec la suppression de ce fichier téléchargé au format compressé.

Alors, quelqu'un peut-il me suggérer comment aller plus loin?

J'utilise PHP, il n'y a pas de code maladroit pour télécharger le fichier juste un formulaire avec functionalty habituelle fichier de téléchargement ...

EDIT Comment pourrais-je intégrer Silverlight à cet effet en PHP?

s'il vous plaît aider

+1

et de http://stackoverflow.com/questions/1864908/compress-file-before-upload-via-http – Palantir

+0

Je peux me tromper sur ce point, mais je pense que la configuration du serveur pour "Accept-Encoding" ou " Content-Encoding "peut être utile d'explorer. Je posterais aussi cette question sur serverfault.com. Vous devrez peut-être définir un en-tête de demande sur la page en téléchargeant le fichier lorsque vous initiez le transfert. Il me semblerait étrange qu'un navigateur prenant en charge 'gzip, deflate' et un serveur prenant en charge' gzip, deflate' ne puisse pas négocier un téléchargement de fichier compressé. – Andrew

+0

Encore une idée ... Je vois que [nochump.com] (http://nochump.com/blog/archives/15) a une bibliothèque Adobe Air qui permet de compresser et de décompresser des fichiers à la volée. Si vous avez un nombre de clients insuffisant pour justifier une mise en ligne personnalisée, cela peut être une bonne solution. Il serait simple pour eux d'utiliser et vous pourriez utiliser tout votre code existant côté serveur tel quel. – Andrew

Répondre

2

Il n'y a aucun moyen de manipuler le fichier comme celui-ci avec un formulaire HTML simple et un script PHP. Pour une raison, avec le sandbox du navigateur, il n'y a pas d'accès au système de fichiers du client.

Vous voudrez probablement explorer une applet Java, Silverlight, une solution de type Flash, quelque chose de plus riche sur le client qui peut être autorisé à accéder au fichier.

Here's one example using Silverlight

0

Pour compresser le fichier avant de le télécharger doit être fait sur le côté client. PHP n'est d'aucune utilité parce que PHP est uniquement serveur. Option 1: Vous demandez à vos clients de télécharger les fichiers déjà compressés (cela ne ressemble pas à ce que vous voulez).

Option 2: Vous avez besoin d'un moyen de le faire en utilisant le code javascript côté serveur - pour être honnête, je doute qu'il y ait une solution facile pour cela, voire pas du tout. Peut-être qu'un flux de données zip pourrait fonctionner, mais pour cela des permissions spéciales pour le script (ex: ActiveX) sont requises - et aujourd'hui, aucun navigateur de date limite ne le permet.

+0

Merci pour l'analyse Thariama ... alors quelle froide est la solution possible pour uploader le fichier 100mb sans délai ...? –

+0

mais comme je l'ai déjà dit, je doute qu'il fonctionnera pour le nouveau navigateur cause de problèmes de sécurité. Vous êtes ici pour une brève discussion: http://www.phpbuilder.com/board/showthread.php?t=10316619 – Thariama

Questions connexes