Bonjour je developpe mon site depuis maintenant 1 mois mais j'ai quelques questions d'optimisations et surtout un probleme !
J'ai coder un upload d'image par un iframe mais quand l'iframe se charge, la fonction de callback ne s'execute pas. L'erreur est du a un mauvais encodage des caracteres mais je l'ai pourant spécifié.
Voici un exemple de callback :<!DOCTYPE html><html><head><meta charset="UTF-8" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script>window.top.window.fin('La modification de votre image n'a pu continuer car la transmition du fichier a été interrompu.','');</script></head><body></body></html>
et voila l'erreur que mozilla m'affiche : L'encodage de caractères d'un document dans un cadre n'a pas été déclaré. Le document peut apparaître différent s'il est visionné sans le document qui l'encadre. picture.php

Voila mes questions annexes :
-Est ce que plusieurs iframes sur une seule page reduit la performance de la page (j'en est cinq dans une page).
-Est-t-il possible d'utiliser la webcam pour envoyer une photo au server ?

6 réponses


Skyz0h
Réponse acceptée

<p><b>Est-ce que plusieurs iframes sur une seule page reduisent la performance de la page ?</b><br>
Oui, c'est pratiquement sur. Après ça dépend de ce que tu charges dans tes iframes.</p>

<p><i>Est-t-il possible d'utiliser la webcam pour envoyer une photo au serveur ?</i><br>
Biensur ! C'est même très simple et il y'a de très bons tutoriels sur le net, comme celui de <a href="http://www.kirupa.com/html5/accessing_your_webcam_in_html5.htm">Kirupa</a></p>

<p>Par contre, je ne saurais te suggérer d'abandonner les iframes au profit de l'ajax. Les iframes c'était bien y'a une dizaine d'années, mais le web évolue et il faut constamment se mettre à la page :D</p>

je sais utiliser l'ajax mais mon code javascript devient vite lourd, et je me perds surtout dans le code ... Bref, je verrais ca a la fin comme ca j'ai juste un copie coller a faire.
Pour l'utilisation de la camera, je connaissais getUserMedia() mais cela permet en aucun cas d'uploader une image au serveur avec (on peu juste les mettres dans un canvas).
Par contre comment saviez-vous comment uploader une image par ajax ? Si oui comment, j'ai réussi qu'avec l'iframe pour ca ... :'(

Si tu es capable d'afficher l'image de la webcam dans un canvas alors tu peux récupérer l'image à l'instant T avec la fonction suivante qui te retournera l'image encodée en base64 :

function getImage(canvas)
{
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0);

    // Get the data-URL formatted image
    // Firefox supports PNG and JPEG. You could check img.src to
    // guess the original format, but be aware the using "image/jpg"
    // will re-encode the image.
    var dataURL = canvas.toDataURL("image/png");

    return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}

Pour envoyer une image via ajax il te suffit de soumettre un formulaire qui contient un champ de type file. C'est vraiment très simple à mettre en oeuvre : petit tutoriel ici !

Merci de ton aide Fish :D
je connaissais les deux méthodes que tu m'as envoyé mais je ne sais pas comment inclure l'image encodé dans un <input ype="file"> :(

Suffit de faire un base64_decode("img_base64"); via php une fois l'image reçu par le php ^^ b

Je sais je suis extrement chiant mais cela serai cool de me donner un code d'exemple stp :D