2011-07-18 5 views
0

J'ai un site sur lequel les utilisateurs téléchargent de gros fichiers (2mb-3mb), en grande quantité. J'ai donc besoin de les stocker sur un disque externe (mon drobo). Comment puis-je télécharger des fichiers dans un dossier sur le serveur, puis comment puis-je écrire un script php qui les récupère et permet aux utilisateurs de les télécharger.Déplacement de fichiers en PHP (relatif au téléchargement de fichiers)

Merci, Joey Sacchini

Répondre

1

Pour ce faire, il suffit de déplacer vos fichiers dans un espace accessible.

http://php.net/manual/en/function.move-uploaded-file.php

Assurez-vous d'examiner les implications de ce bien. Une fois que vous avez déplacé un fichier téléchargé dans un répertoire ouvert, n'importe qui peut y accéder. C'est très dangereux. Imaginez quelqu'un qui télécharge un script PHP.

Il est préférable de créer un script qui récupère les fichiers d'un emplacement qui ne se trouve pas dans la racine Web. À un niveau de base, vous pouvez stocker les propriétés du fichier, telles que le nom d'origine (vous devez les renommer en quelque chose de aléatoire sur le disque) et mimetype, en base de données. Ensuite, envoyez le fichier au client avec readfile().

Pour télécharger des sauvegardes sur votre disque dur personnel, utilisez simplement SFTP.

+0

Vous devez le déplacer quand il est téléchargé. Sinon, il est supprimé, car le fichier se trouve dans l'espace temporaire. – Brad

+0

Merci, laissez-moi essayer cela. – macintosh264

0

Ce n'est pas une réponse rapide, vous devez comprendre comment télécharger, récupérer et enregistrer le fichier sur le serveur; définir les autorisations d'écriture pour PHP et quelques autres choses. Je vous suggère d'essayer ces liens pour vous aider à démarrer rapidement:

http://www.w3schools.com/php/php_file_upload.asp

http://www.tizag.com/phpT/fileupload.php

visitez également le manuel de référence PHP pour quelques grands exemples.

0

Vous pouvez conserver les fichiers téléchargés hors du répertoire du serveur. donc si votre serveur racine est/www/htdocs vous pouvez garder les fichiers dans say/uploadé. donc utiliser quelque chose comme

move_uploaded_file($_FILES['file'],'/uploaded') 

cette façon ur les fichiers seront inaccesible au monde extérieur

Questions connexes