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 :
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é)
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);
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 :
Mais je ne parviens pas à créer un fichier image sur mon serveur à partir de cette url au format BLOB.
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);
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
Partager