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

Spara bild på server efter client-side resize?


sundrik

Rekommendera Poster

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.

Länk till kommentar
Dela på andra webbplatser

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 =)

Länk till kommentar
Dela på andra webbplatser

Okej. Det jag gör här är att i en canvas rita en enkel bild, plocka ut bilden som en dataUrl och sen postar jag den till sidan med ajax och bilden verkar skickas som en bifogad fil vilket borde göra att du inte fastnar i problemet med storleken på requests.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Test</title>
    <style>
        canvas
        {
            width: 300px;
            height: 300px;
        }
    </style>
</head>
<body>
    <form method="post" enctype="multipart/form-data">
        <input type="file" name="file" id="file" />
        <input type="submit" />
    </form>
    <canvas id="canvas"></canvas>
    <script>
        
        var canvas = document.getElementById("canvas");
        var ctx = canvas.getContext("2d");
        var rg = ctx.createRadialGradient(100, 100, 20, 140, 100, 230);
        rg.addColorStop(0, "blue");
        rg.addColorStop(1, "yellow");
        ctx.fillStyle = rg;
        ctx.fillRect(0, 0, 300, 300);

        var base64ImageData = canvas.toDataURL("image/png");

        var fd = new FormData();
        fd.append("file", base64ImageData);

        var xhr = new XMLHttpRequest();
        xhr.open("POST", "image.asp", true);
        xhr.onreadystatechange = function (r) { };
        xhr.send(fd);  
    </script>
</body>
</html>
Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...