2009-10-07 9 views

Odpowiedz

34

Moim najlepszym przypuszczeniem jest to, że po prostu trzeba zadzwonić pod numer base64_decode() na $_REQUEST['data'] przed zapisaniem go do pliku. To powinno wystarczyć :).

+3

westchnienie, to było dość łatwe, powinno być zrobione przed zadaniem pytania! dzięki. – mmattax

6

Prawdopodobnie chciałbyś rozszyfrować przy użyciu base64_decode(), chyba że używasz go tylko tak, jak jest tutaj HERE.

Rzeczą, której jestem pewien jest to, że będziesz chciał dezynfekować $ _REQUEST ['id'] przed użyciem.

+0

wyzywająco będzie dezynfekować, po prostu próbuje być uproszczony ... – mmattax

38

Musisz użyć base64_decode(). I. Czasami to nie wystarcza. Oto kod, którego potrzebujesz:

$img = $_POST['data']; 
$img = str_replace('data:image/png;base64,', '', $img); 
$img = str_replace(' ', '+', $img); 
$fileData = base64_decode($img); 
//saving 
$fileName = 'photo.png'; 
file_put_contents($fileName, $fileData); 

P.S. Użyłem tego kodu, aby pobrać obraz PNG z płótna html.

+0

Otrzymałem błąd z tego powodu: Dozwolony rozmiar pamięci 134217728 bajtów wyczerpany (próbował przydzielić 24 bajty). Przy okazji, używam twojego kodu, aby spróbować uzyskać obraz PNG z ToDataURL (używając JavaScript) z Canvas. – Kelsey

+0

Czy możesz podać więcej szczegółów? Jak myślisz, co dokładnie powoduje błąd? Czemu? Dzięki. –

+1

To powinna być zaakceptowana odpowiedź. – CristiC