Choisir destination d'un upload

benassis

Membre confirmé
10 Janvier 2006
73
0
Bonjour,

Je voudrais pouvoir choisir le répertoire où un fichier sera téléversé avec une fonction upload en php comme la suivante:
$chemin =$_GET['chemin'];
$fichier = $_GET['fichier'];
switch(strrchr(basename($chemin.$fichier), ".")) {
case ".gz": $type = "application/x-gzip"; break;
case ".tar": $type = "application/x-tar"; break;
case ".tgz": $type = "application/x-gzip"; break;
case ".zip": $type = "application/zip"; break;
case ".pdf": $type = "application/pdf"; break;
case ".png": $type = "image/png"; break;
case ".gif": $type = "image/gif"; break;
case ".jpg": $type = "image/jpeg"; break;
case ".txt": $type = "text/plain"; break;
case ".htm": $type = "text/html"; break;
case ".html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;}
header("Content-disposition: attachment; filename=$fichier");
header("Content-Type: application/image/jpeg");
header("Content-Transfer-Encoding: $type\n");
header("Content-Length: ".filesize($chemin.$fichier));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($chemin.$fichier);
Avec ce dernier code, on connaît la provenance du fichier mais je voudrais que le fichier téléchargé aille dans le répertoire de mon choix.
Peut-on le faire ?
Merci
 
Quelques remarques... :

- ton content-type hum hum... "application/image/jpeg" ?
- tu ne fais aucune vérification des paramètres passés en GET. Ton script permet de récupérer n'importe quel fichier sur la machine. Bravo la sécurité :rolleyes: ;)
- tu pourrais utiliser autre chose qu'un switch (par exemple, une sorte de map<extension, type>), &#231;a serait plus propre.
- je n'ai pas compris ta question. tu veux que le fichier que tu envoies au client se place dans le dossier de ton choix sur la machine du client ? si c'est &#231;a, alors &#233;videmment impossible.
 
Bonjour Molgow
Je confesse que ce script, emprunté sur un site d'entraide et adapté à mes fins, ne doit pas être tout à fait sécuritaire mais il faisait son travail jusqu'ici. Je suis un débutant qui tâtonne du code pour apprendre. Dans mon ignorance en programmation php, je ne peux distinguer encore ce qui est propre et ce qui est sale mais ça viendra ;)

Je veux que les gens qui viennent sur mon site puissent y téléverser des images. Mais au lieu que ces images soient téléversées par défaut sur mon bureau (desktop), je veux qu'elles le soient dans mon répertoire /WebServer/Documents/répertoire_d'arrivée/.

Par ailleurs, que veux-tu dire par
- ton content-type hum hum... "application/image/jpeg" ?
? Que devrais-je mettre à la place ?
Merci de m'aider
 
Bonjour Molgow
Je confesse que ce script, emprunté sur un site d'entraide et adapté à mes fins, ne doit pas être tout à fait sécuritaire mais il faisait son travail jusqu'ici. Je suis un débutant qui tâtonne du code pour apprendre. Dans mon ignorance en programmation php, je ne peux distinguer encore ce qui est propre et ce qui est sale mais ça viendra ;)

Je veux que les gens qui viennent sur mon site puissent y téléverser des images. Mais au lieu que ces images soient téléversées par défaut sur mon bureau (desktop), je veux qu'elles le soient dans mon répertoire /WebServer/Documents/répertoire_d'arrivée/.

Par ailleurs, que veux-tu dire par ? Que devrais-je mettre à la place ?
Merci de m'aider

Que je suis bête !:confused:
La routine que j'ai montrée en est une de téléchargement (download) et non de téléversement (upload):heu:
J'ai trouvé ce que je cherchais ici :
http://forums.macg.co/vbulletin/showthread.php?t=157065&highlight=upload.
Il me reste à l'adapter à mes besoins.

Merci de votre support

Ps. Mais, molgow, je ne sais toujours pas pourquoi
ton content-type hum hum... "application/image/jpeg"
et ce que je devrais mettre à la place. ;)