begin process at 2012 05 31 18:39:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

uploader un fichier puis le compiler pour le copier dans la bdd


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

uploader un fichier puis le compiler pour le copier dans la bdd

samedi 30 avril 2005 à 18:44:45 | uploader un fichier puis le compiler pour le copier dans la bdd

margin

Bonjour,

Je dois uploader des fichiers de type images dans une zone d'administration. D'habitude, j'ai les droits en écriture.. et je copie le fichier dans le bon répertoire, avec le bon nom.... tout ça, tout ça...

Le problème est que je n'ai pas le droit de copier le fichier dans un répertoire du site pour des questions de droits en écriture et de sécurité. Je dois donc encoder le fichier en "binaire" (c'est ce qu'on m'a dit de faire). Comment on fait pour décompiler un fichier sour la forme d'un code, que je pourrais copier dans la bdd (mysql), puis comment je le recompile pour l'afficher dans la page de visualisation de l'image?

voià,

j'espère que ma question est compréhensible, que j'ai utiliser le bon vocabulaire et que vous  pourrez m'aider,

merci d'avance,



samedi 30 avril 2005 à 18:51:01 | Re : uploader un fichier puis le compiler pour le copier dans la bdd

margin

pardon correction..; le terme est blob... pas binaire !

transformer mon fichier en blob, pour le copier dans la bdd, puis afficher le blob dans la page de visualisation de l'image....

samedi 30 avril 2005 à 23:57:22 | Re : uploader un fichier puis le compiler pour le copier dans la bdd

Anthomicro

Salut,

<?php
header('content-type:image/jpeg'); //par exemple si c'est une image jpeg
echo $donnee[0]; //tu auras préalablement fait ta reqûete avec un $donnee=mysql_fetch_row($requete);
?>


    samedi 7 mai 2005 à 21:40:14 | Re : uploader un fichier puis le compiler pour le copier dans la bdd

    margin

    ok, mais ça, ça permet de télécharger le fichier à l'aide des header...

    comment je fais pour seulement l'afficher dans ma page sous la forme d'un <img src="" />? et qu'au final j'ai une galerie d'images à afficher?

    Sachant que je n'ai pas le droit de créer des fichiers temporaires...





    samedi 7 mai 2005 à 21:50:22 | Re : uploader un fichier puis le compiler pour le copier dans la bdd

    Anthomicro

    bah <img src="image.php?url_image=machin" alt="" />

    ensuite dans ton fichier image.php tu affiches avec le header l'image correspondante...


      samedi 7 mai 2005 à 22:24:04 | Re : uploader un fichier puis le compiler pour le copier dans la bdd

      margin

      pas mal...

      j'y avais pas pensé....

      merci,


      samedi 7 mai 2005 à 22:47:52 | Re : uploader un fichier puis le compiler pour le copier dans la bdd

      Anthomicro

      Si ça te convient peux-tu cliquer sur "réponse acceptée" stp, merci :-)


        samedi 7 mai 2005 à 23:43:27 | Re : uploader un fichier puis le compiler pour le copier dans la bdd

        margin

        ça me convient sauf que ça marche pas.....

        je m'explique,

        j'ai utilisé 2 types de méthodes :

        la première avec des fwrite()
        la seconde avec un base64_encode() et base64_decode().

        avec fwrite si je le mets dans un fichier "affiche.php", il m'ouvre le téléchargement de fichier, et ouvre le logiciel par défaut.

        avec le système base64 rien ne se passe.

        voilà les codes

        pour le fwrite :
        1- l'encodage :
        if (isset ($_FILES['photo'])){//verif l'existence du fichier
                    $nom=$_FILES['photo']['name'];         
                    $fichier=$_FILES['photo']['tmp_name'];          
                    $taille=$_FILES['photo']['size'];         
                    $type=$_FILES['photo']['type'];
                          
                //encodage du fichier
                    $contenu=addslashes(fread(fopen($fichier,"r"),$taille));
                 
        //insertion dans la bd     
                    mysql_query("INSERT INTO photo photo_binaire,photo_nom,photo_taille,photo_type) VALUES ('$contenu','$nom','$taille','$type')");
                }   

        conclusion : ok ça a bien été enregistrer dans la base.

        2 - affichage :

        //dans la zone où je veux afficher
        //avant j'ai ouvert ma base
        $resultat=mysql_query("SELECT * FROM photo ORDER photo_id DESC LIMIT 0, 1");
                    $ligne=mysql_fetch_array($resultat);
        echo "l'image : <img src='affiche.php?mon_id=".$ligne["photo_id"]."' />";

        3 - dans le fichier affiche.php :
        //le même select puis
                $image=$ligne['photo_binaire'];
                    $file = fopen("fichier_tmp.tmp", "w+");
                    fwrite($file, $image);
                   
                   $pipe = popen("fichier_tmp.tmp", "r");
                    fclose($file);
        conclusion : l'appel a cette page ouvre une fenêtre de téléchargement pour afficher l'image. Donc l'image existe, mais je n'arrive pas à l'intégrer dans ma page

        solution 2 avec un encodage en base 64 :
        1- enregistrement à l'identique de la version fwrite, seul changement :

                $contenu=base64_encode(fread(fopen($fichier,"r"),$taille));

        // qui remplace le $contenu avec les addslashes

        2- affichage dans la page (idem):
        echo "l'image : <img src='affiche.php?mon_id=".$ligne["photo_id"]."' />";

        3- le code de la page affiche.php :
                       header("Content-type: ".$ligne['photo_type']);
                         header("Content-length: ".$ligne['photo_taille']);
                      header("Content-Disposition: attachment; filename=".$ligne['photo_nom']);
                      //header("Content-Description: PHP Generated Data");
                        $echo base64_decode($ligne["photo_binaire"]);

        conclusion : l'image ne s'affiche pas, et je ne suis pas sûre qu'elle existe.

        Bref, qu'est ce que je n'ai pas fait correctement?

        merci-d'avance,









        Cette discussion est classée dans : fichier, compiler, bdd, copier, uploader


        Répondre à ce message

        Sujets en rapport avec ce message

        copier fichier [ par olivia77 ] bonjour, j'ai un tableau et j'exporte ce tableau en format csv mais le pb c qu'il me l'exporte sur le serveur alors que je voudrais qu'il l'exporte di Copie de fichier [ par BirD ] Hello, j'ai un ptit prob pour copier une image, je m'explique: j'arrive parfaitement à copier l'image, mais dans le même dossier, ou un sous dossier, Uploader un fichier à l'aide d'un lien [ par phenixoiseau ] Bonjour,Je voudrais savoir comment uploader un fichier en cliquant sur un lien et obtenir la fenêtre "enregistrer ce fichier sur disque" et pouvoir ch Uploader un fichier de plus de 2 Mo [ par krevette ] Bonjour a tous j'aimerais savoir comment on peut uploader un fichier de plus de 2 Mo sans avoir recours a un FTP. Parceque a chaque fois je veux un fi (ftp) comment copier un fichier sur le server a partir de son ordinateur [ par tclo2 ] ftp svp Bonjour comment lire un fichier des sources de son ordinateur (c:fichier) et le copier sur son serveur (http://serveur/fichier) Require vs Include, Fonctions de BdD et de Session... [ par Tartuffe ] Hello.1/ j'ai un fichier 'conf' qui contient tous le nécessaire pour les accès BdD2/ dans chaque page je fais un require dudit 'conf' et mes 'DBLink' uploader le fichier dans la base ??? [ par michong ] salut a tousj'ai effectué des recherches mais je n'ai pas trouvé ce que je voulais, donc je vous pose la questiontout d'abord, est ce possible d'uploa Sauvegarde BDD... ligne de commande ? [ par Bounce1 ] Bonjour,Je souhaite sauvegarder ma BDD automatiquement en faisant un fichier .bat qui sera executé par le PC tout les jours à 02h du mat.Par contre je URGENT [ par massacr ] J'ai fait un script pour uploader des fichier sur un serveur.J'ai fait une liste déroulante pour choisir l'endroit ou va aller le fichier uploader. L connaitre la taille d'un fichier sans l'uploader [ par cacoun ] Salut à tous,Voici mon pb:je désire connaître la taille d'un fichier SANS l'uploader.Malgré mes tentatives avec max-file-size, je n'arrive pas à trouv


        Nos sponsors


        Sondage...

        CalendriCode

        Mai 2012
        LMMJVSD
         123456
        78910111213
        14151617181920
        21222324252627
        28293031   

        Consulter la suite du CalendriCode

        Photothèque

        A découvrir



         
        Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
        CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
        CodeS-SourceS.com© est une marque déposée tous droits réservés

        Google Coop CodeS-SourceS Google Coop CodeS-SourceS
        Temps d'éxécution de la page : 1,591 sec (3)

        Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales