Corruption de fichier .rar dans MySQL help!

Corruption de fichier .rar dans MySQL help! - PHP - Programmation

Marsh Posté le 29-07-2009 à 08:45:44    

Bonjour,
 
Je un problème de corruption des fichier dans ma base MySQL, je ne comprend pas pourquoi.... j'ai vérifier dans download.php il choisi bien de me télécharger le ficher que je souhaite mais a chaque fois y'a une photo qui est corrompu.
 
exemple:
si jai mon ficher test.rar avec 5 photo dedans la première et TOUJOURS corrompu....
 
cette partie de code me permet de uploader le ficher.rar

Code :
  1. if(isset($_POST['validation'])) {
  2. //Indique si le fichier a été téléchargé
  3.   if(!is_uploaded_file($_FILES['form_photo']['tmp_name']))
  4.   echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
  5.   else {
  6.   //liste des extensions possibles     
  7.   $extensions = array('/png', '/gif', '/jpg', '/jpeg', '/x-zip-compressed' , '/octet-stream');
  8.   //récupère la chaîne à partir du dernier / pour connaître l'extension
  9.   $extension = strrchr($_FILES['form_photo']['type'], '/');
  10.   //vérifie si l'extension est dans notre tableau             
  11.   if(!in_array($extension, $extensions))
  12. echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.<br> '.$extension.' test S : '.$extensions;
  13.    else {       //on définit la taille maximale
  14.    define('MAXSIZE', 1048576 );       
  15.    if($_FILES['form_photo']['size'] > MAXSIZE)
  16. echo 'Votre image/Zip/rar est supérieure à la taille maximale de '.MAXSIZE.' octets';
  17.      else {
  18.     $database = mysql_select_db("abcformationlog" ) or exit (mysql_error());
  19.     //récupération des infos saisies
  20.     $nom = mysql_escape_string($_POST['form_name']);
  21.     $prenom = mysql_escape_string($_POST['form_prenom']);
  22.     $form_date = mysql_escape_string($_POST['form_date']);
  23.     $form_facture = mysql_escape_string($_POST['form_facture']);
  24.   $form_photo = mysql_escape_string(file_get_contents($_FILES['form_photo']['tmp_name']));
  25.       //on insére tout ça dans nos tables.
  26.       mysql_query("INSERT INTO formation(nom, prenom, date, numero_facture, photo, extension) VALUES('".$nom."', '".$prenom."' , '".$form_date."', '".$form_facture."', '".$form_photo."', '".$_FILES[form_photo][type]."')" ) or exit (mysql_error());
  27.       mysql_close();
  28.       echo 'L insertion s est bien déroulée !';
  29.       header("Location:admin_formation.php?good_post" );
  30.       }
  31.       }
  32.      }
  33.     }


 
 
et voici mon ficher download.php

Code :
  1. <?php
  2.   $db_address = "localhost";
  3.   $db_login = "root";
  4.   $db_pass = "";
  5.   $db_bdd = "XXXXXXXX";
  6.   $connexion = mysql_connect($db_address,$db_login,$db_pass);
  7.   mysql_select_db($db_bdd,$connexion);
  8. $id = $_POST["ID"];
  9. $query = "SELECT nom,photo,extension FROM formation where ID= $id";
  10. $result = MYSQL_QUERY($query);
  11. $name = @mysql_result($result, 0, "nom" );
  12. $data = MYSQL_RESULT($result,0,"photo" );
  13. $type = MYSQL_RESULT($result,0,"extension" );
  14. header( "Content-type: $type" );
  15. header("Content-Disposition: attachment; filename=$name.rar" );
  16. print $data;
  17. ?>


 
 
 
 
merci de votre aide!


---------------
Dell Inspiron 1720
Reply

Marsh Posté le 29-07-2009 à 08:45:44   

Reply

Marsh Posté le 29-07-2009 à 10:38:58    

up


---------------
Dell Inspiron 1720
Reply

Marsh Posté le 29-07-2009 à 15:27:18    

hello, deja tu devrai pas socké un fichier directement dans ta base,
ca se fait plus ou moins avec le type Blob, mais c'est limiter,
 
faut te faire un dossier a part, avec tes fichiers dedans, et dans ta base sql, le path vers le fichier qui correspond
 
de plus dans ton formulaire t'as mis "octet-stream",   tout les fichier meme "php" peuve etre en "octet-stream",
 
pour le rendu du fichier, verifié bien le charset,  un caratere na pas l a meme valeur en  ANSI qu'en UTF8

Reply

Sujets relatifs:

Leave a Replay

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