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

JavaScript Discussion :

Sauvegarder une Url au format BLOB dans un fichier image


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 69
    Par d�faut Sauvegarder une Url au format BLOB dans un fichier image
    Bonjour,

    Je suis en train de d�velopper une m�thode pour pr�visualiser des images et les uploader apr�s selection.

    Pour la preview :
    Je fais �a en jquery, en encodant les images en base64 : �a marche tr�s bien

    Pour la partie upload :

    Voil� ce que j'ai aujourd'hui :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    filesToSend.push(
                    {
                        'name'          : this.name,
                        'type'          : this.type,
                        'size'          : this.size,
                        'lastModified'  : this.lastModified,
                        'url'           : (URL || webkitURL).createObjectURL(this)
                    });
                    window.URL.revokeObjectURL(this);
    Au d�part je passais mon data64 pour g�n�rer une image cot� PHP (mais passer une image en base64 � notre serveur, c'est super lent et je pense d�conseill�)
    Je suis donc parvenu � trouver la fonction createObjectURL() qui prend en param�tre mon File et qui me retourne une url du type : blob:http%3A//<mon_site>.fr/2b3a78be-b0ec-40a4-8f50-1577ba7642cb
    Si je copie cette url dans mon navigateur, l'image s'affiche tr�s bien.

    Je comptais donc passer cette url � mon serveur PHP pour g�n�rer un fichier image de fa�on � enregistrer ce fichier sous la forme <mon_image>.jpg sur mon serveur.
    De la fa�on suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    $content = file_get_contents($url);
     
            $fp = fopen($destination . $photoID . '.' . $this->getExtension(), "w");
            fwrite($fp, $content);
            fclose($fp);
    Mais je ne parviens pas � cr�er un fichier image sur mon serveur � partir de cette url au format BLOB.
    J'ai tout simplement essayer un file_get_contents de mon url, mais cela ne fonctionne pas.

    Y a t-il une f��on de g�n�rer une image � partir de cette BLOB url, ou alors il faut que j'utilise une autre m�thode ? (Le but est de ne pas faire un formulaire et d'envoyer mes images avec un submit : je ne souhaite pas devoir recharger la page).

    Merci

  2. #2
    Mod�rateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par d�faut
    Tu veux faire une preview de l'image avant son envoi (dans ce cas PHP n'intervient pas) ou bien tu veux afficher l'image qui vient d'�tre upload� (dans ce cas il n'y pas besoin de ruser, l'image est sur le serveur) ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    tu confonds deux actions le preview et le upload

    lorsque ton utilisateur ajoute une image tu as un �l�ment de type file
    avec celui-ci tu cr�es un ObjectUrl pour g�n�r� la preview

    lorsque tu dois envoyer les donn�es au serveur ce n'est pas la preview que tu dois envoyer mes l'�l�ment file

    A+JYT

  4. #4
    Membre confirm�
    Homme Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 69
    Par d�faut Upload d'une image en preview sur mon serveur php
    Bonjour,

    Apr�s quelques temps d'absence, je reviens sur ce probl�me que je n'arrive toujours pas � r�soudre. Surement quelque chose de tr�s simple, mais bon ...

    Donc pour r�sumer et pour r�capituler :
    1 - J'arrive sur une page me permettant de faire un upload
    2 - Je clique sur le bouton pour ouvrir ma boite de dialogue qui me permet de choisir les images � uploader
    3 - En jQuery, je r�cup�re mes images :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    jQuery("#toUpload").change(function()
        {
            var files = jQuery("#toUpload").prop("files");
        }
    4 - Avec l'objet FileReader(), je cr�e en jQuery une vignette aper�u de mon image.
    5 - Je selectionne mes images en jQuery (case a cocher ou ajout d'un attribut dans la balise img)

    Et, au point suivant, je voudrais, en cliquant sur un bouton <UPLOAD>, uploader mes images sur mon serveur.
    Une question, peut-etre tout bete, est comment r�cup�rer mes images afin de les uploader sur le serveur ?


    Une solution que j'ai trouv�e, mais qui, � mon avis, n'est pas optimis�e, est :
    - Lorsque je cr�e les vignettes aper�u, avec l'objet FileReader, j'obtiens l'image au format base64 dans mon attribut src
    - Une fois mes vignettes s�lectionn�es, quand je clique sur <UPLOAD>, je r�cup�re les images au format base64 pour les envoyer, par une requete Ajax, au serveur
    - Sur mon serveur, je convertis alors l'image base64 en JPG pour la stocker.

    Je pense que cette solution n'est pas tr�s adapt�e. En effet, dans ma requete Ajax, dans ce cas, mon image en base64 est pass�e dans le header (et une chaine en base64 peut etre tr�s longue, ce qui est assez lent).

    Merci, encore une fois, de me donner vos avis et solutions � mon probl�me,

    Nikko

  5. #5
    Expert confirm�

    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par d�faut
    Salut,

    Sinon il y a une solution toute pr�te ici avec des exemples fonctionnels. Tout ce que tu demande est d�j� fait, et m�me beaucoup plus.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 10/08/2008, 12h52
  2. R�ponses: 2
    Dernier message: 16/07/2008, 22h32
  3. R�ponses: 4
    Dernier message: 30/05/2007, 10h50
  4. Ins�rer une date au format fran�ais dans un champ
    Par EpOnYmE187 dans le forum Installation
    R�ponses: 2
    Dernier message: 14/06/2005, 12h09
  5. R�ponses: 2
    Dernier message: 25/04/2005, 09h55

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