2013-06-19 2 views
0

http://www.taffatech.com/Paint.html캔버스에서 이미지 다운로드

저장을 클릭 한 다음 다운로드 버튼을 클릭하십시오. 이미지를 다운로드하고 이름을 바꾸려면 내 코드에서 'myimage'를 보내 주시면 감사하겠습니다. 감사드립니다.

오류 :

function CanvasSaver(url) { 

    this.url = url; 

    this.savePNG = function(canvas, fname) { 
     if(!canvas || !url) return; 
     fname = fname || 'picture'; 

     var data = canvas.toDataURL("image/png"); 
     data = data.substr(data.indexOf(',') + 1).toString(); 

     var dataInput = document.createElement("input") ; 
     dataInput.setAttribute("name", 'imgdata') ; 
     dataInput.setAttribute("value", data); 
     dataInput.setAttribute("type", "hidden"); 

     var nameInput = document.createElement("input") ; 
     nameInput.setAttribute("name", 'name') ; 
     nameInput.setAttribute("value", fname + '.png'); 

     var myForm = document.createElement("form"); 
     myForm.method = 'post'; 
     myForm.action = url; 
     myForm.appendChild(dataInput); 
     myForm.appendChild(nameInput); 



    document.body.appendChild(myForm) ; 
    myForm.submit() ; 
    document.body.removeChild(myForm) ; 
}; 
: 기능 JS 저장

$("#download").click(function() { 
var cs = new CanvasSaver('http://taffatech.com/saveme.php'); 

cs.savePNG(canvas, 'myimage'); 
}); 

:

<?php 
    # we are a PNG image 
    header('Content-type: image/png'); 

    # we are an attachment (eg download), and we have a name 
    header('Content-Disposition: attachment; filename="' . $_POST['name'] .'"'); 

    #capture, replace any spaces w/ plusses, and decode 
    $encoded = $_POST['imgdata']; 
    $encoded = str_replace(' ', '+', $encoded); 
    $decoded = base64_decode($encoded); 

    #write decoded data 
    echo $decoded; 
?> 

JS 버튼 : PHP를위한

Warning: Cannot modify header information - headers already sent by (output started at /home/content/29/10007129/html/taffatech/saveme.php:2) in /home/content/29/10007129/html/taffatech/saveme.php on line 4 

Warning: Cannot modify header information - headers already sent by (output started at /home/content/29/10007129/html/taffatech/saveme.php:2) in /home/content/29/10007129/html/taffatech/saveme.php on line 7 

코드

}

감사합니다. 더 이상 정보가 필요하면 그냥 물어보십시오!

+1

'saveme.php'의 시작 부분에 공백이 없음을 확인할 수 있습니까? – Graham

+0

사실, hexdump를 기반으로, 처음에는' EPB

+0

줄 바꿈이 문제 였고 줄을 모르는 문제가 발생했습니다. –

답변

0

문제는 PHP의 첫 번째 줄 이었으므로 PHP 파일의 시작 부분에 빈 줄을 사용할 수 없습니다. 모두에게 감사드립니다.

관련 문제