IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi d'un fichier (upload)


Sujet :

Langage PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 362
    Par défaut Envoi d'un fichier (upload)
    Bonjour à tous,

    J'ai crée un formulaire via lequel on peut m'envoyer un fichier.

    Lorsque je teste en local tout fonctionne nickel. Le fichier envoyé va directement dans le dossier wamp/www/Uploads. Voir la confirmation de wampserver dans la copie d'écran Upload Local.png

    Mon souci est que lorsque je charge un fichier sur la page de mon site eh bien rien n'apparaît.

    Alors voilà ce que j'ai fait pour prévoir le chargement d'un fichier sur ma page jusqu'au stockage sur le serveur de mon hébergeur:

    1° Avec mon FTP FileZilla j'ai crée une dossier www/Uploads

    2° Toujours via FileZilla j'ai paramétrer les droits pour l'accès à www/Uploads et ce de la façon suivante: voir pièce jointe Attribut dossier Uploads

    3° Ensuite voici le code de mon fichier MyForm.php qui gère les données de mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    <?php
     
    define ('TXT_MAIL_TO','ricardoarrabito@creditriskmanagement.be');
     
    $company = $_POST['company'];
    $name = $_POST['name'];
    $firstname = $_POST['firstname'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $object = $_POST['object'];
    $dstrep = './Uploads/';
     
    $headers = "From: " .$company." ".$name." ".$firstname." <".$email.">"."\r\n\r\n";
     
    $mainmessage = "Ce mail a été envoyé depuis le site www.creditriskmanagement.be \n\n";
    $mainmessage .= $message;
     
    mail(TXT_MAIL_TO,$object, $mainmessage, $headers);
     
    // Je teste l'écriture possible dans mon répertoire Uploads
     
    if(!is_writable($dstrep))
    	{
    			die('Impossible d\'écrire dans le répertoire cible ');
    	}
    	else
    	{
    			echo ('Ecriture possible ');
    	}
     
    // On vérifie d'abord que des données ont bien été envoyées
    if(!isset($_FILES['fichier']))
     
    	die('Aucune données');
     
    // Je teste l'existence d'un fichier et son bon transfert
     
    if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0)
     
    {
    	// Testons si le fichier n'est pas trop gros
    	if ($_FILES['fichier']['size'] <= 1000000)
    	{
    		// Testons si l'extension est autorisée
    		$infosfichier = pathinfo($_FILES['fichier']['name']);
    		$extension_upload = $infosfichier['extension'];
    		$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'doc', 'docx', 'xls', 'xlsx', 'txt');
     
    		if (in_array($extension_upload, $extensions_autorisees))
     
    		{
     
    			// On peut valider le fichier et le stocker définitivement
    			move_uploaded_file($_FILES['fichier']['tmp_name'], $dstrep . basename($_FILES['fichier']['name']));
     
    			// Je vérifie l'envoi et l'extension
     
    			echo $extension_upload;			
    			echo " L'envoi a bien été effectué !";
    		}
    	}
     
    	else
    	{
    		// Vérification du code d'erreur
    		switch($_FILES['fichier']['error'])
    	  {
    		 case 1: // UPLOAD_ERR_INI_SIZE
    			die("Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !");
    			break;
    		  case 2: // UPLOAD_ERR_FORM_SIZE
    			die("Le fichier dépasse la limite autorisée dans le formulaire HTML !");
    			break;
    		  case 3: // UPLOAD_ERR_PARTIAL
    			die("L'envoi du fichier a été interrompu pendant le transfert !");
    			break;
    		  case 4: // UPLOAD_ERR_NO_FILE
    			die("Le fichier que vous avez envoyé a une taille nulle !");
    			break;
    	  }	
     
    	}
     
    }
     
    ?>
    4° Sachez que les mails partent bien. Mais je ne reçois pas les fichiers en pièces jointes. Il m'indique: "Aucune données" comme prévu dans ce bout de code test repris du code ci-dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // On vérifie d'abord que des données ont bien été envoyées
    if(!isset($_FILES['fichier']))
     
    	die('Aucune données');
    5° J'ai vérifié dans php.ini que file_uploads soit à on et c'est le cas.

    6° J'ai aussi testé le droit d'écriture dans www/Uploads et il ne met pas de message d'erreur. Code de test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Je teste l'écriture possible dans mon répertoire Uploads
     
    if(!is_writable($dstrep))
    	{
    			die('Impossible d\'écrire dans le répertoire cible ');
    	}
    	else
    	{
    			echo ('Ecriture possible ');
    	}


    Question: Où est le souci sachant que en local cela marche nickel ?
    Images attachées Images attachées   

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2010, 17h21
  2. Réponses: 3
    Dernier message: 21/12/2007, 17h34
  3. [Upload] Envoi de gros fichiers
    Par zevince dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2007, 17h11
  4. Réponses: 5
    Dernier message: 03/04/2007, 16h11
  5. Réponses: 22
    Dernier message: 26/05/2006, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo