Bonjour
Habitué a developper en asp classique, je met le nez dans le .net et j'ai suivi quelques tuto sur l'utilisation des canvas...
Mon but est d'enregister le dessin de l'utilisateur au format JPG sur un serveur... et que l'image ai comme nom une variable contenu dans un input.
A l'aide des différents tuto/forum, j'ai reussi a recuperer le dessin, a le sauvegarder avec un nom fix, mais au format PNG. J'arrive aussi a afficher dans la page HTML le contenu du canvas au format JPG...
Des que j'essai de passer le dataurl en JPG pour l'upload, ou que j'essaie de passer le nom en argument, plus rien ne marche...et je commence a tourner en rond... du coup j'appelle a l'aide XD
La page Web contient donc un canvas (mycanvas), un bouton pour valider l'upload, et un input qui contiendra le nom de l'image.
la fonction upload en javascript:
et la page aspx qui enregistre l'image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 function Upload() { // Generate the image data var Pic = document.getElementById("myCanvas").toDataURL("image/png"); //var Pic=document.getElementById("myCanvas").toDataURL("image/jpeg"); Pic = Pic.replace(/^data:image\/(png|jpg);base64,/, "") // Sending the image data to Server $.ajax({ type: 'POST', url: 'Save_Picture.aspx/UploadPic', data: '{ "imageData" : "' + Pic + '" }', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (msg) { alert("dessin enregistre"); }, error: function (msg) { alert("dessin non enregistre"); } }); }
Du coup, comment passer le dataurl en JPG (j'ai l'impression que c'est le replace apres qui n'est pas bon... mais malgré mes recherches je n'ai pas trouvé), et comment passer la valeur de l'imput en 2eme argument pour la fonction Uploadpic (là je sèche totallement....)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 using System; using System.Web; using System.IO; using System.Web.Script.Services; using System.Web.Services; [ScriptService] public partial class Save_Picture : System.Web.UI.Page { [WebMethod()] public static void UploadPic (string imageData) {string abc="image/mon_dessin.png"; string Pic_Path = HttpContext.Current.Server.MapPath(abc); using (FileStream fs = new FileStream(Pic_Path, FileMode.Create)) { using (BinaryWriter bw = new BinaryWriter(fs)) { byte[] data = Convert.FromBase64String(imageData); bw.Write(data); bw.Close(); } } } }
Merci
Jabb'
Partager