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