PHP Envoyer un fichier...

PHP Envoyer un fichier... - PHP - Programmation

Marsh Posté le 16-12-2002 à 12:12:56    

Salut,
 
J'aimerai envoyer un fichier que je selectionne dans un explorateur dans un répertoire sur un serveur....
 
Comme puis-je faire? Quelle fonction php dois-je utiliser?
 
Merci :jap:

Reply

Marsh Posté le 16-12-2002 à 12:12:56   

Reply

Marsh Posté le 16-12-2002 à 12:19:16    

hmm je sais plus le nom de la fonction mais selon ton hébergeur cette fonction peut être désactivée (free, multimania)


---------------
(Feed-Back HFR) - Funky Tonight!
Reply

Marsh Posté le 16-12-2002 à 12:22:53    

okie mais donc ca existe...

Reply

Marsh Posté le 16-12-2002 à 12:28:44    

ouep, enfin, une fct pour explorer le disque, une fonction pour envoyer le fichier selectionné


---------------
(Feed-Back HFR) - Funky Tonight!
Reply

Marsh Posté le 16-12-2002 à 12:34:18    

copy()

Reply

Marsh Posté le 16-12-2002 à 12:34:20    

un formulaire avec
<input type="file" name="fichier">
et d'autres choses (max size, etc...)
 
puis récupérer le fichier sur la page de destination

Code :
  1. $file= $_FILES['fichier']['tmp_name'];
  2. if (is_uploaded_file( $file) )
  3.    {
  4.     $new_filename= $_FILES['fichier']['name']; //modifier le nom sur le site (éventuellement)
  5.     if(!@copy( $file, 'repertoire/'. $new_filename){
  6.        echo('Le fichier n\'a pas pu etre sauvé');
  7.     }
  8.     @unlink( $_FILES['fichier']['tmp_name'] );
  9. }
  10. else{
  11.    echo('Aucun fichier n\'a été uplodé');
  12. }


Message édité par ethernal le 16-12-2002 à 12:35:25

---------------
...oups kernel error...
Reply

Marsh Posté le 16-12-2002 à 12:44:18    

tu as ton <input type=file name=variable> sur la page où tu selectionnes ton fichier.
 
variable est la variable dans laquelle est enregistré le nom du fichier.
 
ton form doit renvoyé vers le script ki copie le fichier sur le serveur pour ça tu utilises la fonction copy()
 
copy($variable, répertoire de destination (peut être relatif));
 
Faut ke tu fasses attention qu'un fichier du même nom ne soit pas déjà présent dans le répertoiure du serveur et tu as intérêt à empêcher l'enregistrement de certains fichiers.
 

Reply

Marsh Posté le 16-12-2002 à 12:51:59    

ah oui et tu as une limite sur la taille des fichier ke tu peux enregister via PHP, par défaut elle est de 8 Mo mais évidemment les hébergeurs la réduisent considérablement.

Reply

Marsh Posté le 16-12-2002 à 14:37:57    

ok merci... :jap:
 
Sinon ca marche presque mais comme je prends le chemin complet du fichier mesdoc\tutu\tata\fichier.doc il aime pas ... car evidement il prend le full path et sur le serveur il ne veut pas le créer...
C koi la fontion pour virer l'url absolue et garder que le nom du fichier?
:jap:

Reply

Marsh Posté le 16-12-2002 à 14:41:26    

basename() il me semble


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 16-12-2002 à 14:41:26   

Reply

Marsh Posté le 16-12-2002 à 14:47:32    

okie j'vais voir ca :)

Reply

Marsh Posté le 17-12-2002 à 12:37:47    

KiK a écrit :

ok merci... :jap:
 
Sinon ca marche presque mais comme je prends le chemin complet du fichier mesdoc\tutu\tata\fichier.doc il aime pas ... car evidement il prend le full path et sur le serveur il ne veut pas le créer...
C koi la fontion pour virer l'url absolue et garder que le nom du fichier?
:jap:


 
:heink:
 
heu...je crois pas ke ce soit à cause de ça.
 
.doc > typiquement le genre de fichier qu'il vaut mieux pas autoriser (because virus) :D

Reply

Marsh Posté le 17-12-2002 à 13:10:28    

Un exemple (incomplet).
Tu as les répertoires imgs, docs et upload. imgs et docs sont les répertoire dans lesquels tu enregistres tes fichiers (en fonction de leur type), upload celui dans lequel se trouve les scripts qui permettent d'uploader (index.php et create.php).
 
upload/index.php
 

Code :
  1. <html>
  2. Ajouter un nouveau fichier<br>
  3. <FORM ACTION="create.php" METHOD="post" NAME="upload_fichier" ENCTYPE="multipart/form-data">
  4. <table border=0>
  5. <tr><td>Selection</td><td><INPUT TYPE="file" NAME="file" SIZE="24"></td></tr>
  6. <tr><td>copier dans le répertoire</td><td><select name="rep" size=1><option value="imgs">images</option><option value="docs">documents</option></select></td></tr>
  7. </table>
  8. <div align=right><INPUT TYPE="submit" NAME="ajouter" VALUE="enregistrer"></div>
  9. </FORM>
  10. Nb: La taille maximale des fichiers que votre hébergeur permet d'enregistrer est de <b><?php echo ini_get(post_max_size); ?>octets</b>.<br>Vous ne pouvez enregistrer que des fichiers aux formats .jpg, .png, .rtf, .pdf, .txt, .swf, .gif.
  11. </html>


 
upload/create.php
 

Code :
  1. <?php
  2. if ($rep=='imgs' or $rep=='docs') {
  3. $filename=str_replace(" ","_",$file_name);
  4. $filecontrol=strstr($file_name,"." );
  5. if ($filecontrol=='.gif' or $filecontrol=='.swf' or $filecontrol=='.jpg' or $filecontrol=='.png' or $filecontrol=='.rtf' or $filecontrol=='.txt' or $filecontrol=='.pdf') {
  6.  copy("$file","../$rep/$filename" );
  7.  }
  8. }
  9. header("Location: ./" );
  10. ?>


 
ça devrait marcher...
 
c important pour des raisons de sécurité d'empêcher l'upload de fichiers .php

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed