2010-10-20 11 views
0

Je voudrais démarrer un site de téléchargement et de téléchargement de fichiers volumineux (jusqu'à 1Go). Je pensais qu'il serait préférable de télécharger les fichiers en utilisant FTP (avec PHP), car ce protocole est surtout utilisé pour ces types de transferts.Télécharger le fichier en utilisant FTP et PHP

Le cliënt reçoit un email, y compris un lien de téléchargement pour télécharger le fichier (comme yousendit.com). Quand ils cliquent sur le lien une boîte de téléchargement apparaît. Mon problème est que je ne sais pas comment afficher une boîte de téléchargement en utilisant ftp et php. J'ai lu qu'il n'est pas possible de télécharger immédiatement un fichier par PHP, en utilisant FTP. Est-ce correct? Dois-je créer des fichiers temporaires sur le serveur pour permettre au client de télécharger le fichier? Si oui, est-ce aussi une bonne solution pour les gros fichiers?

Que me conseillez-vous de donner aux clients la possibilité de télécharger ces énormes fichiers?

Merci pour votre réponse!

+0

Seriez-vous prêt à écouter l'idée de télécharger manuellement un fichier volumineux sur le serveur, puis de cliquer sur un lien pour le télécharger. Ce n'est pas FTP - plutôt le téléchargement forcé. – Glycerine

+0

Oui, les utilisateurs peuvent télécharger un fichier et d'autres utilisateurs peuvent télécharger ce fichier en utilisant un lien unique. Quelle est la limite de la taille du fichier lors de l'utilisation d'un téléchargement de force? Et est-ce assez stable pour télécharger des fichiers volumineux? – Jaap

Répondre

0

Vous pouvez générer adresse unique basée sur session_id (créer ce dossier sur l'exécution et de déplacer le fichier énorme là-bas) et rediriger l'utilisateur sur ce lien Par exemple, vous avez le fichier huge.tgz

1. Send you client link http://***/user/john/file/huge.tgz 
2. Ask user for auth in this page if they lost session 
3. get session id 
4. create on your server folder with name equals session id and move huge.tgz here 
5. redirect user to unique ftp link ftp://***/17oe5kf8iYmpt66bjs89hcuo83/huge.tgz 

Vous devez interdire les fichiers de liste et les répertoires sur le serveur ftp

+0

hmm, combien de temps faut-il pour déplacer un fichier vers un emplacement unique? Et comment pouvez-vous rediriger l'utilisateur vers un emplacement ftp? Par en-tête ('Location: ftp: // .....'); ? Et l'utilisateur a la possibilité de télécharger le fichier plus d'une fois. – Jaap

+0

si le fichier se trouve sur le même serveur et la même partition - moins d'une seconde. Et oui avec la fonction d'en-tête php ou javascript location.href – ifrond

+0

Si vous ne voulez pas déplacer le fichier. Vous pouvez le copier. Cela prend quelques minutes. Par serveur de requête ajax si le fichier est prêt (taille du fichier dans un répertoire unique est égal à la taille du fichier original) et que redirigé par javascript – ifrond

0

Vous ne pouvez pas leur envoyer un lien FTP? Pourquoi avez-vous besoin de PHP?

ftp://ftp12.freebsd.org/pub/FreeBSD/ls-lR.gz

+0

Les fichiers doivent être protégés afin que les clients ne puissent pas télécharger les fichiers des autres. Avec un lien FTP direct, il est également possible de télécharger d'autres fichiers sur le serveur. – Jaap

0

Vous voulez probablement utiliser PHP pour gérer tout sauf le transfert de fichiers. Une fois que vous avez effectué toutes les vérifications souhaitées, vous pouvez rediriger le navigateur vers le fichier en spécifiant le protocole en tant que ftp. Bien que vous ne puissiez pas avoir de barre de progression sur votre site, l'application navigateur/ftp en affichera probablement une.

+0

Mais dans votre cas, les utilisateurs peuvent télécharger d'autres fichiers sur le serveur lorsqu'ils connaissent le nom de fichier, n'est-ce pas? Est-il préférable de se connecter au serveur ftp en utilisant php? – Jaap