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 :

upload des fichier RAR et zip


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut upload des fichier RAR et zip
    Bonjour tout le monde voilà un formulaire qui me casse la tête depuis des heures, si quelqu'un peut m'aider svp
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
     
    <?php
    include('config.php');
     
    $UploadDirectory	= 'uploaded_images/';
    $PSBDirectory       = 'uploaded_files/';
     
     
    if (!@file_exists($UploadDirectory)) {
    	//destination folder does not exist
    	die("Make sure Upload directory exist!");
    }
     
    if($_POST)
    {	
     
    		if(!isset($_POST['category']) || strlen($_POST['category'])<1)
    	{
    		//required variables are empty
    		die("Please select a category.");
    	}
     
    	if(!isset($_POST['mName']) || strlen($_POST['mName'])<1)
    	{
    		//required variables are empty
    		die("Please add a title.");
    	}
     
    	if(!isset($_POST['aName']) || strlen($_POST['aName'])<1)
    	{
    		//required variables are empty
    		die("Please tell us author of the file.");
    	}
     
    	if(!isset($_POST['nSet']) || strlen($_POST['nSet'])<1)
    	{
    		//required variables are empty
    		die("Please tell us how many items in the list.");
    	}
     
    		if(!isset($_POST['description']) || strlen($_POST['description'])<1)
    	{
    		//required variables are empty
    		die("Please add a small description.");
    	}
     
    		if(!isset($_POST['license']) || strlen($_POST['license'])<1)
    	{
    		//required variables are empty
    		die("Please select a license.");
    	}
     
    	if(!isset($_FILES['mFile']))
    	{
    		//required variables are empty
    		die("Please add a image");
    	}
     
    	if(!isset($_FILES['zFile']))
    	{
    		//required variables are empty
    		die("Please add file in zip format");
    	}
     
    	if(!isset($_POST['Tags']) || strlen($_POST['Tags'])<1)
    	{
    		//required variables are empty
    		die("Please enter few tags.");
    	}
     
    	if($_FILES['mFile']['error'])
    	{
    		//File upload error encountered
    		die(upload_errors($_FILES['mFile']['error']));
    	}
     
    	$FileName			= strtolower($_FILES['mFile']['name']); //uploaded file name
    	$FileTitle			= $mysqli->escape_string($_POST['mName']); // file title
    	$ImageExt			= substr($FileName, strrpos($FileName, '.')); //file extension
    	$active             = 0;//File active
    	$FileType			= $_FILES['mFile']['type']; //file type
    	$FileSize			= $_FILES['mFile']["size"]; //file size
    	$RandNumber   		= rand(0, 9999999999); //Random number to make each filename unique.
    	$uploaded_date		= date("c",time());
     
    	$Author  			= $mysqli->escape_string($_POST['aName']); // file author
    	$Website  			= $mysqli->escape_string($_POST['aURL']); // Website
    	$ItemSet            = $mysqli->escape_string($_POST['nSet']); // number in the set
    	$Description        = $mysqli->escape_string($_POST['description']); // description
    	$Category           = $mysqli->escape_string($_POST['category']); // description
    	$License            = $mysqli->escape_string($_POST['license']); // license
    	$Tags				= $mysqli->escape_string($_POST['Tags']); // tags
     
    	//Zip File
    	$PSBName			= strtolower($_FILES['zFile']['name']);
    	$ZipExt			    = substr($PSBName, strrpos($PSBName, '.'));
    	$ZipType			= $_FILES['zFile']['type']; //file type
    	$ZipSize			= $_FILES['zFile']["size"]; //file size
     
    		switch(strtolower($ZipType))
    	{
    		//allowed file types
    		case ".zip": $type = "application/zip"; 
    			break;
    		default:
    			die('Unsupported Zip File!'); //output error
    	}
     
    	switch(strtolower($FileType))
    	{
    		//allowed file types
    		case 'image/png': //png file
    		case 'image/gif': //gif file 
    		case 'image/jpeg': //jpeg file
    		case 'image/bmp': //bmp file
    			break;
    		default:
    			die('Unsupported Image File!'); //output error
    	}
     
     
    	//Image File Title will be used as new File name
    	$NewFileName = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), strtolower($FileTitle));
    	$NewFileName = $NewFileName.'_'.$RandNumber.$ImageExt;
     
    	//Zip File Title will be used as new File name
    	$NewZipName = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), strtolower($FileTitle));
    	$NewZipName = $NewZipName.'_'.$RandNumber.$ZipExt;
     
     
       //Rename and save uploded image file to destination folder.
       if(move_uploaded_file($_FILES['mFile']["tmp_name"], $UploadDirectory . $NewFileName ))
       {
     
      //Rename and save uploded zip file to destination folder.
       if(move_uploaded_file($_FILES['zFile']["tmp_name"], $PSBDirectory . $NewZipName ))
       {
     
    // Insert info into database table.. do w.e!
    		$mysqli->query("INSERT INTO resource(img_title, file_title, zip_file, author, website, item_set, description, category, license, tags, uploaded_date, active) VALUES ('$NewFileName', '$FileTitle', '$NewZipName','$Author','$Website','$ItemSet','$Description','$Category','$License','$Tags','$uploaded_date','$active')");
     
    		die('Thank you for your submission.');
     
       }
       }else{
       		die('There seems to be a problem. please try again.');
       } 
    }
     
    //function outputs upload error messages, http://www.php.net/manual/en/features.file-upload.errors.php#90522
    function upload_errors($err_code) {
    	switch ($err_code) { 
            case UPLOAD_ERR_INI_SIZE: 
                return 'The uploaded file exceeds the upload_max_filesize directive in php.ini'; 
            case UPLOAD_ERR_FORM_SIZE: 
                return 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; 
            case UPLOAD_ERR_PARTIAL: 
                return 'The uploaded file was only partially uploaded'; 
            case UPLOAD_ERR_NO_FILE: 
                return 'No file was uploaded'; 
            case UPLOAD_ERR_NO_TMP_DIR: 
                return 'Missing a temporary folder'; 
            case UPLOAD_ERR_CANT_WRITE: 
                return 'Failed to write file to disk'; 
            case UPLOAD_ERR_EXTENSION: 
                return 'File upload stopped by extension'; 
            default: 
                return 'Unknown upload error'; 
        } 
    } 
    ?>
    dès que je clique sur envoyer ça me donne l'erreur "Unsupported Zip File!"

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ligne 100 :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		switch(strtolower($ZipType))
    	{
    		//allowed file types
    		case ".zip": $type = "application/zip";
    Or, $ZipType est de la forme "application/zip", pas ".zip".

    N.B. Extension :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$ZipExt			    = substr($PSBName, strrpos($PSBName, '.'));
    Non ! plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$ZipExt			    = pathinfo($PSBName,PATHINFO_EXTENSION);

  3. #3
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ok je vais tester tout de suite

    et après avoir tester j'ai toujours la même erreur "Unsupported Zip File!"

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Et si tu affichais le $ZipType en cas d'erreur pour voir ce qu'il ya dedans ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    switch(strtolower($ZipType))
    {
    	//allowed file types
    	case ".zip": $type = "application/zip"; 
    		break;
    	default:
    		die('Unsupported Zip File ! '.$ZipType); //output error
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    je vais changer le zip par autre chose et voir ce que ça donne.

Discussions similaires

  1. Upload des fichier avec AJAX
    Par Pedro Varela dans le forum ASP.NET
    Réponses: 6
    Dernier message: 23/01/2007, 07h52
  2. download et upload des fichier avec JSP & mysql
    Par MSM_007 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 17/07/2006, 15h20
  3. upload des fichiers dans mon serveur
    Par abdou.sahraoui dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/05/2006, 09h32
  4. upload des fichiers
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 19/04/2006, 07h02
  5. Uploader des fichiers via ssh
    Par Michaël dans le forum Réseau
    Réponses: 3
    Dernier message: 13/05/2005, 20h47

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