Upload un fichier

Fermé
moose - 24 oct. 2003 à 19:46
bubuche87 Messages postés 41 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 26 janvier 2009 - 14 mars 2007 à 16:50
Bonjour à tous,

Là comprends pô! Le script php ci dessous à pour but de renommer mon fichier et stocker le fichier dans un dossier sur le serveur nommer "doc_claim"
Ce script fonctionne parfois correctement sur mon Localhost et parfois non, et sur mon serveur web i marche pas du tout :(

M'affichant constamment le même message d'erreur:
"Warning: rename(/tmp/php2uNLEm,doc_claim/.jpg): Invalid cross-device link in /home/forest/public_html/logset/supportforest/valid_claim.php on line 81" -la ligne 81 c'est la ligne rename($File....)


Pour bien comprendre:
attachment : c'est le nom de min input file
La variable $machine c'est le nom de la machine saisie dans le formulaire

#définition de l'espace destiné à recevoir les fichiers
$repository="doc_claim/";

#si un fichier attachment a bien été transféré
if (is_uploaded_file($_FILES["attachment"]["tmp_name"])) {

#recupération de l'extension du fichier
#autrement dit tout ce qu'il y a après le dernier point (inclus)

$nomPhoto = $_FILES["attachment"]["name"];
$extension = substr($nomPhoto, strrpos($nomPhoto, "."));

#Contrôle de l'extension du fichier

if (eregi("^ph", $extension)) {
die("Les fichiers en .ph* ne sont pas autorisés.");
}
$cheminPhoto = $machine . $extension;
rename($_FILES["attachment"]["tmp_name"], $repository.$cheminPhoto);
}

J'attends vos comments!Merci
Moomoose!
A voir également:

2 réponses

j'ai le meme probleme
0
bubuche87 Messages postés 41 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 26 janvier 2009 11
14 mars 2007 à 16:50
je ne peux pas te donner de réponse, mais, si c'est bien comme je pense ton code à une faille de sécurité sur un point:
si je met comme adres
http://machin/truc.php?na=bidule.jpg
quand tu prendretout ce qu'il y aura après le derniers point, tu verras jpg mais ce serras en fait un fichier php.

Cela dit, je ne connais pas trop la variable $_FILES, surtout comme tu l'utilises, et si elle enlève déjà tout ce qui est variable get, tu n'as aucun prolème de ce doté là.


Pour ton problème, cela peut venir du chmod: si tu n'as pas les droits, tu ne peux pas le renommer. De plus, j'avais avant un serveur localhost qui acceptait les adresse de type C:/ et qui ne le fait plus maintenant. Essai de rajouter file:/// au début peut être.

Désolé, de ne pas pouvoir t'aider davantage
0