2017-09-10 2 views
0

안녕하세요. 여기에 게시하는 것이 처음입니다.오류 500 이미지 base64

내가베이스 64로 인코딩 된 이미지를 사용하여 내 도메인에있는 이미지를 업로드 할은, 내 이미지는 완전히 서버에 업로드 된,하지만, 난 여전히에서 서버 오류 500, memory_limit를 받고 있어요 내 나는 이제 image.png를가 2메가바이트의 크기를 가지고 가정하자 XAMPP 서버를

<?php 

header('Content-type : bitmap; charset=utf-8'); 

$encoded_string = $_POST['string_encoded']; //encoded string 

$imagename = 'image.png'; 

$decoded_string = base64_decode($encoded_string); 

$path = 'imageses/'.$imagename; 

$file = fopen($path, 'wb'); 

fwrite($file, $decoded_string); 
fclose($file); 

?>` 

답변

0

을 사용하고 128M`
의 php.ini 파일입니다. 이 경우 base64에서 디코딩 만하면 대략 64 * 2MB를 128MB로 메모리에 씁니다. 이것이 문제의 원인 일 수 있습니다. 이 문제를 해결하려면 php.ini에서 memory_limit을 늘리십시오. 또 다른 가능한 문제는 스크립트가 여러 번로드되어 동일한 대규모 디코딩을 병렬 방식으로 수행하는 것입니다. 모든 것이 실패하면 여전히 성공을 달성 할 수 있지만 전체 파일을 디코딩하지 않고 한 번에 하나의 작은 패킷 만 가능한 한 빨리 계산할 때 패킷을 잊어 버릴 수 있습니다.

+0

php.ini에서 memory_limit = 512M을 만들어 저장하려고했지만 출력은 여전히 ​​동일합니다. $ _POST 메소드를 삭제하고 인코딩 된 문자열 기본값을 입력하면 항상 표시됩니다. 같은 오류 –

+0

@ MarkDylanBMercado 파일의 크기는 얼마입니까? –

+0

파일 크기가 5.57KB 인 png 이미지 파일입니다. –