Bref, revenir au code de base : Upload de fichiers en PHP
Version imprimable
Bref, revenir au code de base : Upload de fichiers en PHP
ok, si j'ai bien tout compris, j'ai mis : (File1 est le nom du champ dans mon formulaire)
Code:
1
2
3
4 if (!move_uploaded_file($_FILES['File1']['tmp_name'], $content_dir.$nom_fichier2)) { echo "<br>Impossible de déplacer ".$fichierauploader."<br>(".$content_dir.$nom_fichier2.")"; }
et j'obtiens :
Citation:
Envoyé par php
Là normalement, ça devrait marcher :koi:
Tu es bien dans le script de traitement du formulaire ? Essaye d'afficher le contenu de $_FILES avec un var_dump($_FILES).
Ci-dessous le résultat de var_dump($_FILES);
Je ne sais pas si cela a de l'importance mais le formulaire est sur une page asp et je passe sur une page php pour le traitement via une redirection en javascript.Code:array(0) { }
Le fichier uploadé n'existe que pour la page de destination du formulaire.
Il ne survit pas à la redirection.
ARF !!! Désolé de ne pas l'avoir précisé avant.
Je vais voir si je ne peux pas activer la cohabitation asp-php comme j'avais sur mon ancien serveur.
Merci pour votre aide :D et désolé de vous avoir fait perdre votre temps :oops:
Les deux peuvent cohabiter : PHP se moque que le formulaire ait été construit en ASP (d'ailleurs il ne le sait pas), il reçoit juste les données.
Je sais qu'il peuvent cohabiter mais actuellement si j’envoie les données de mon formulaire en POST (comme c'était programmé initialement), il ne transmet rien à ma page php. C'est pour cela que j'ai modifié avec un javascript.
Heu... ASP (comme PHP du reste) n'envoie jamais de formulaire à qui que ce soit, il se contente de créer une page HTML contenant un formulaire.
Donc si tu ne reçois rien, ça n'a rien à voir avec ASP ou PHP mais c'est juste que le code créé est incorrect, par exemple l'attribut enctype est-il bien présent et sa valeur est-elle multipart/form-data ?
Bonjour Bovino,
oui c'est présent, ci-dessous le code initial de mon formulaire :
Code:
1
2
3
4 <form ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data" NAME="Form1"> <INPUT NAME="File1" TYPE="File" ENCTYPE="multipart/form-data"> <INPUT NAME="Submit1" TYPE="button" value="Soumettre la requête" onClick="envoyer()"> </form>
et en javascript
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function tester() { with(window.document.Form1) { texte = File1.value; result = texte.search(/^[a-zA-Z_0-9: \\\/]+_((0[1-9])|([1-2][0-9])|(3[0-1]))((0[1-9])|(1[0-2]))[0-9][0-9][\.][txt][xls]/); if (result != -1) { document.getElementById('alerte').style.visibility='hidden'; return true; } else { document.getElementById('alerte').style.visibility='visible'; return false; } } } function envoyer() { if (tester()) document.Form1.submit(); }
Salut c'est re-moi, après plusieurs tests, il s'agit de ma baliseque je n'arrive pas à récupérer en POST.Code:<INPUT NAME="File1" TYPE="File" ENCTYPE="multipart/form-data">
Si je renvoi sa valeur dans une autre balise, je la récupère mais dans ce cas j'ai "C:\fakepath\" donc inutilisable.
Est ce qu'il pourrait s'agir d'une config du serveur ?
Il n'y a pas d'attribut enctype pour une balise <input /> !
Sinon
un fichier ne se récupère pas avec $_POST mais avec $_FILES... :?Citation:
je n'arrive pas à récupérer en POST
Quant au chemin reçu, c'est tout à fait normal : le serveur n'a pas à connaitre l'arborescence locale du fichier transféré, donc le navigateur ne l'envoie pas, mais le fichier en lui-même est tout à fait utilisable !
EDIT
Ton expression régulière en JavaScript ne fait pas ce que tu crois au niveau de l'extension !
ici, tu demandes qu'il y ai deux lettres après le point : t, x ou t suivie de x, l ou s, donc tx, tl, ts, xx, xl ou xs !Code:[\.][txt][xls]
J'ai réussi !!!!! :mrgreen:
Je me suis servi de ce code pour traiter mes variables :
Merci à tous de votre aide :ccool::ccool:Code:
1
2 $File1=$_FILES['File1']['tmp_name']; $File1_name=$_FILES['File1']['name'];