Just nu i M3-nätverket
Gå till innehåll

sundrik

Medlem
  • Antal inlägg

    219
  • Gick med

  • Senaste besök

  1. Tog den strängen innan den skickas och satte in i filen save_image.asp. När jag anropade filen, så istället för att ta strängen som skickades, så tog den den hårdkodade och använde. När jag gjorde så, då blev bilden skapad och sparad på servern perfekt. Jag tror att strängen blir omgjord på något sätt. Funderar på om det är: contentType: "application/x-www-form-urlencoded", Som sabbar till den. Jag har provat med några andra, men då får jag bara massa felmeddelanden. Sen hittade jag att urlencode tog alla + och gjorde blanksteg av dom. Så jag gjorde en replace på alla blanksteg till + Då fungerar det. Men jag kan inte köra över bilderna när dom är större än ca 150kb. Precis som det var med post på formuläret. Skulle väl tro att jquery används precis på samma sätt som med form post. Verkar som jag får försöka hitta ett annat sätt att få den datan från client-side till server-side. Har väldigt slut på idéer just nu.... Så alla tips är välkomna =)
  2. Njä.. Det fungerar till den graden att den skapar filn på servern nu. Men bilden är ingenting. Jag tror strängen blir omgjord på någotvis. Så därför blir bilden korrupt. Nu gäller det bara att se till så strängen är intakt hela vägen.
  3. Jo men då får jag msxml3.dll error '80004005' Error parsing '"iVBORw0KGgoAAAANSUhEUgAAADIAAAAmCAYAAACGeMg8AAAYBUlEQVRYRy1Zd2Bb9bX rvayZVnykPfeM3acxLGzl4GEhFVWKSNAgUKBFtq 0vcoD0oHpbTslb4...' as bin.base64 datatype. Så jag trodde jag vart tvungen. Men det kanske är något annat som strular? Nu kan jag iaf se att strängen kommer så långt. Tror det har att göra med " som blir i början och slutet av strängen när den skickas så här. Men jag vet faktiskt inte riktigt vad det beror på.
  4. nu jäklar börjar det närma sig. Nu behöver jag bara lista ut hur jag kan parsa strängen på server-side. Jag gör så här på client-side: url: "includes/save_image.asp", type: "POST", dataType: "text", contentType: "application/x-www-form-urlencoded", data: "imageData=" + JSON.stringify(dataURL), Och på serverside måste jag köra JSON.parse(Request.Form("imageData")); Men jag kan ju inte köra JSON.parse i ASP-koden. Då blir det: Object required: 'JSON' Jag var såpass korkad att jag försökte: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="includes/javascript/json2.js"></script> <% Function Base64Data2Stream(sData) Set Base64Data2Stream = Server.CreateObject("Adodb.Stream") Base64Data2Stream.Type = 1 'adTypeBinary Base64Data2Stream.Open With Server.CreateObject("MSXML2.DomDocument").createElement("b64") .dataType = "bin.base64" .text = JSON.parse(sData) 'Mid(sData, InStr(sData, ",") + 1) ' append data text (all data after the comma) Base64Data2Stream.Write .nodeTypedValue 'write bytes of decoded base64 to stream Base64Data2Stream.Position = 0 End With End Function Dim CanvasStream Set CanvasStream = Base64Data2Stream(Request.Form("imageData")) 'Write binary to Response Stream Response.BinaryWrite CanvasStream.Read 'Write binary to File CanvasStream.SaveToFile Server.Mappath("imgFileFromCanvas.png"), 2 'adSaveCreateOverWrite %> Tips på hur jag kan göra JSON.parse för att få rätt kodning av strängen?
  5. Jag har testat med både dataType "json" och utan. Får samma resultat. Kollade med F12 och vad som skickas. Under headers och form data, så finns hela base64 koden med. { "imageData" : "iVBORw0KGgo......... Kan jag inte på någotvis skriva tillbaka text från save_image.asp. Då kan man skriva ut hur svaren ser ut och kanke se mer exakt vart det skiter sig? Jag försökte med en alert-box. Men får ju inte in asp-strängen i den.
  6. Ja, såklart =) Fungerade ju mycket bättre. Nu håller jag på att försöka lösa varför jag får ADODB.Stream error '800a0bb9' Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. save_image.asp line 9 Line 9 i den filen är Base64Data2Stream.Write .nodeTypedValue 'write bytes of decoded base64 to stream hela save_image.asp <% Function Base64Data2Stream(sData) Set Base64Data2Stream = Server.CreateObject("Adodb.Stream") Base64Data2Stream.Type = 1 'adTypeBinary Base64Data2Stream.Open With Server.CreateObject("MSXML2.DomDocument").createElement("b64") .dataType = "bin.base64" .text = Mid(sData, InStr(sData, ",") + 1) ' append data text (all data after the comma) Base64Data2Stream.Write .nodeTypedValue 'write bytes of decoded base64 to stream Base64Data2Stream.Position = 0 End With End Function Dim CanvasStream Set CanvasStream = Base64Data2Stream(Request.Form("imageData")) 'Write binary to Response Stream 'Response.BinaryWrite CanvasStream.Read 'Write binary to File CanvasStream.SaveToFile Server.Mappath("imgFileFromCanvas.png"), 2 'adSaveCreateOverWrite %> Jag har fått för mig att base64 strängen inte skickas på något vis. Funderar på om man inte skall inkludera någon fil för json? Hittade denna som man kan inkludera. Vet inte om det gör någon skillnad. Eller om det är någon annan eller någon mer fil som borde vara inkluderad? <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> Snart så kanske man kan få igång det här. Är extremt tacksam för den hjälpen jag fått hittills =D
  7. Jag hittade denna kodsnutt. Men fattar inte hur jag skall kunna anropa så den körs. Är jätte dålig på javascript. <script type="text/javascript"> var dataURL = document.getElementById("result"); dataURL = dataURL.replace('data:image/png;base64,', ''); var areturn = $.ajax({ url: "includes/save_image.asp", type: "POST", data: '{ "imageData" : "' + dataURL + '" }', dataType: "json", beforeSend: function(x) { x.overrideMimeType("application/j-son;charset=UTF-8"); } }).done(function(result) { console.log("Success Done!\n" + result); }).always(function(data) { console.log("Always:\n" + data.responseText); }); </script> Och i save_image.asp ser koden ut: <% Function Base64Data2Stream(sData) Set Base64Data2Stream = Server.CreateObject("Adodb.Stream") Base64Data2Stream.Type = 1 'adTypeBinary Base64Data2Stream.Open With Server.CreateObject("MSXML2.DomDocument.6.0").createElement("b64") .dataType = "bin.base64" .text = sData Base64Data2Stream.Write .nodeTypedValue 'write bytes of decoded base64 to stream Base64Data2Stream.Position = 0 End With End Function Dim CanvasStream Set CanvasStream = Base64Data2Stream(Request.Form("imageData")) 'Write binary to Response Stream 'Response.BinaryWrite CanvasStream.Read 'Write binary to File CanvasStream.SaveToFile Server.Mappath("imgFileFromCanvas.png"), 2 'adSaveCreateOverWrite %> Så försöker jag köra koden så filen sparas med en knapp. Men det verkar inte gå. Mest tror jag det är för att areturn() inte är en function. <input type='button' value='Save imge' onclick="areturn();"> Jag får inte detta att fungera alls. Känner mig lite lost nu och skulle gärna vilja få en liten knuff i rätt riktning =)
  8. Jo, kör ju post och request.form.. Men att göra en ajax är väl uingefär som att göra en get. För datan går väl genom urlen med ajax?
  9. Du slog huvudet på spiken. Tog ut endast det som stod efter kommat, så fungerar det. Självklart går man på nästa nit. Så länge jag gör bilderna väldigt små, så går det att föra in dom. Men direkt när dom blir lite större, typ över ca 150kb. Så får jag felmeddelande. Detta meddelandet: Request object error 'ASP 0104 : 80004005' Jag googlad och förstod att det är längden på strängen som blir för lång mot vad servern tillåter. Finns det något annat sätt att föra över en sådan lång sträng utan att få problem? Kanske via någon ajax lösning. Men där kanske det också är sträng limit?
  10. wiiiihooo... Nu får jag ut en sträng som ser ut som så här: data:image/png;base64,iVBORw0KGgoAA...... Nu är det kvar att kunna omvandla och spara den på servern. Tips på hur jag kan börja? Den koden jag postade ovan fungerar inte alls.
  11. Nu har jag fått lite liv i sakerna.. men ytterst lite. Jag lyckade lägga in något i input hidden. Även i en input text för att se så något hamnar där. // retrieve the canvas content as // base4 encoded PNG image // and pass the result to the callback onresample(canvas.toDataURL("image/png")); document.getElementById("imageData").value = onresample(canvas.toDataURL("image/png")); Men det som hamnar där är "undefined". Så jag kom inte så långt alls... *tunnhårig*
  12. Känner faktiskt att jag håller på att bli aningen tokig just nu.. Jag borde väl ändå kunna skriva ut strängen ifrån .toDataURL. Jag får ju upp bilden på sidan och den är ändrad i storlek. Så logiskt sett borde jag kunna haffa strängen och skicka den i en input hidden? Eller bara skriva ut den på sidan så jag kan se att jag fått tag i den på något vis...
  13. Nope. La in den javascripten i samma fil, och det gjorde ingen skillnad.
  14. Jag använder Chrome version 29. finns inga uppdaterinag tillgängliga. Försökte även i IE 10 nu. får inte ut något ur imageData trots det. Väldigt märkligt. Kan det vara för att jag har filen som samplar om i en include? <script src="includes/javascript/resample.js"></script>
×
×
  • Skapa nytt...