Page pour charger et envoyer des documents

Fermé
antalass Messages postés 6 Date d'inscription dimanche 7 mars 2010 Statut Membre Dernière intervention 14 mars 2010 - 12 mars 2010 à 21:19
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 14 mars 2010 à 11:15
Bonjour,

je dois mettre en place une page web pour que les utilisateurs puissent m'envoyer des documents de formats variés et de très grande taille.

Je suis vraiment débutant en développement, et j'utilise le code suivant.

je ne crois qu'il ne marche pas. je ne sais pas s'il me faut installer un serveur FTP ou non ?

bref aidez moi svp.
__________________________________________________________________________

page html:

<html>
<form action="cible_envoi.php" method="post" enctype="multipart/form-data">
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
<input type="submit" value="Envoyer le fichier" />

</p>


</form>
</html>
___________________________________________________________________________________
page cible_envoi.php:

<?php

// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png','pdf','doc');
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";

}
}
}
?>
__________________________________________________________________________________________

Merci
A voir également:

5 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
12 mars 2010 à 22:41
Ça à l'air correcte.
Pas besoin de serveur FTP, c'est PHP qui écrit le fichier dans le dossier.
0
antalass Messages postés 6 Date d'inscription dimanche 7 mars 2010 Statut Membre Dernière intervention 14 mars 2010
13 mars 2010 à 09:58
Bonjour,

Merci pour ta réponse rapide.

Je sais que le code est bon. J'utilise WAMP, et quand j'exécute la page , je parcours avec le bouton parcourir mon disque dure, je choisis un fichier , et j'envoie. et là la confirmation "L'envoi a bien été effectué" je ne l'ai pas mais c'est une page blanche qui apparait. Et puis si le téléchargement et l'envoi sont fait , où je trouverai mon fichier en question ?

Une dernière question svp, je crois que ce code me limite la taille du fichier à une certaine taille, c'est le cas ? et si oui comment je pourrai résoudre le pb car j'ai besoin d'un code qui envoie des fichiers très lourds.

ps: le code je l'ai pris sur le site du zero.

Merci encore une fois.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
13 mars 2010 à 12:10
Le fichier sera dans le dossier "uploads", dans le même dossier que ta page PHP.
Par défaut, PHP limite l'upload à 2Mo.
Il faut modifier cette valeur dans le php.ini
0
antalass Messages postés 6 Date d'inscription dimanche 7 mars 2010 Statut Membre Dernière intervention 14 mars 2010
14 mars 2010 à 00:21
ça c'est le contenu du fichier php.in concernant les fichiers à télécharger .
---------------------------------------------------------------------------------------------------------------------------
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "c:/wamp/tmp"

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
--------------------------------------------------------------------------------------------------------------------------------
Comme on le voit le répertoire de sauvegarde des fichiers téléchargés est : c:/wamp/tmp

je suis allé voir ce répertoire , il y a rien. aucun fichier téléchargé .ce que je trouve bizarre c'est que quand je clic sur "envoyer le fichier" , il n 'y ait aucun message de confirmation sauf une page vide.

Je suis allé changer la taille max du fichier j'ai mis 10M par exemple. Dans les deux php.in un dans :C:\wamp\Apache2\bin et un autre dans C:\wamp\php et jai un message d'erreur.
--------------------------------------------------------
Warning: move_uploaded_file(uploads/2009_09_16_09_59_romario_nm_ru_sva_206.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\tuto\cible_envoi.php on line 16

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'c:/wamp/tmp\php68.tmp' to 'uploads/2009_09_16_09_59_romario_nm_ru_sva_206.jpg' in C:\wamp\www\tuto\cible_envoi.php on line 16
L'envoi a bien été effectué !
----------------------------------------------------------------------------------------------------------

le pb se trouve où svp ?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
14 mars 2010 à 11:15
« Comme on le voit le répertoire de sauvegarde des fichiers téléchargés est : c:/wamp/tmp »
Non, ça, c'est le répertoire temporaire où est stocké le fichier avant que tu le sauvegarde définitivement avec move_uploaded_file()

Pour les "Warning", c'est parce que tu n'indiques pas un bon chemin.
Sous Windows c'est toujours des antislashes : \
Sinon tu peux mettre le chemin relatif.
0