ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> php-france
php-france
[php-france] pb d'upload
by Luc R. other posts by this author
Jul 6 2007 3:59AM messages near this date
Re: [php-france] pb upload complément | [php-france] Encodage des caractères
Bonjour,

Toutes les recherches autour de l'upload de fichier me donne en gros  le
code suivant.

Celui-ci semble fonctionner de temps à autre en tant que page unique mais
lorsque je l'intègre dans une autre page du type index et qui s'affiche
via un switch il ne marche plus du tout.
En fait tout fonctionne jusqu'à ce qu'il doive copier et là cela ne
marche pas.

Voici le code. Pouvez-vous m'indiquer ce qu'il y aurait à y modifier?
Je vous en remercie.

<?php

if(isset($_FILES['photo']))
{
  // params
  unset($erreur);
  $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
  $taille_max = 100000;
   $dest_dossier = 'upload/photo/';
  // vérifications
  if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1),
$extensions_ok ) )
  {
    $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg
!';
  }
  elseif( file_exists($_FILES['photo']['tmp_name'])
          and filesize($_FILES['photo']['tmp_name']) >  $taille_max)
  {
    $erreur = 'Votre fichier doit faire moins de 100Ko !';
  }
  // copie du fichier
  if(!isset($erreur))
  {
     $dest_fichier = basename($_FILES['photo']['name']);
    // formatage nom fichier
    // enlever les accents
     $dest_fichier = strtr($dest_fichier,
'�Á����������Í�Ï���������
Ýàáâãäåçèéêëìíîïðòóôõöùúû
üýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    // remplacer les caracteres autres que lettres, chiffres et point par _
     $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_',
$dest_fichier);
    // copie du fichier
    $photo = $dest_fichier;
    if (move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier .
$dest_fichier)) { echo "copie effectuée"; }
  }


?> 
<html> 
<body> 
<!-- Erreur ? --> 
<?php
if(isset($erreur)){
  $texte = $erreur;
}
?> 
<!-- Formulaire --> 
<!-- Attention, de ne pas oublier le  enctype="multipart/form-data" --> 
<form method="POST" action="30.php" enctype="multipart/form-data"> 
<!-- Limiter la taille des fichiers à 100Ko --> 
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
<fieldset> 
<legend> Envoi de fichiers 100 KO max.</legend>
<!-- champs d'envoi de fichier, de type file --> 
<p> <label for="photo">Photo 100 KO max.:</label><input type="file"
name="photo" /> </p>
<!-- <p> <label for="photo_2">Photo 2 :</label><input type="file"
name="photo_2" /> </p> -->
<!-- bouton d'envoi --> 
<p> <input type="submit" name="envoi" value="Envoyer les fichiers"
/> </p>
</legend> 
</fieldset> 
</form> 
</body> 
</html> 



-- 
Se désabonner ? Envoyez un mail à php-france-unsubscribe@[...].org
Plus d'informations ? Envoyez un mail à sympa@[...].org ayant pour sujet HELP

Privacy Policy | Email Opt-out | Feedback | Syndication
© 2004 ActiveState, a division of Sophos All rights reserved