2011-12-15 8 views
0

오류가 있기 때문에 ..... 이미지를 표시 할 수 없습니다.이미지를 표시 할 수 없습니다.

아이디어가 있으십니까?

+2

왜 추가 슬래시? 너는 필요 없어. 이진 데이터가 아니라 문자열입니다. – Flukey

+0

에는 슬래시가 필요하지 않습니까? – user1056534

+0

Nopes. 이진 데이터가 아닙니다. – Flukey

답변

1
VALUES ('$id', '$imgData', 'fileSize', 'fileType', NOW());"; 

파일 유형은 항상 "fileType"이며 크기는 항상 "fileSize"(데이터베이스에 올바르게 저장됩니까?)입니다. 출력물의 이미지 유형은 항상 image/fileType이며 적어도 하나는 문제입니다.

또한 finfo을 사용하려고 시도하지만 결국은 $_FILES 배열의 사용자 제공 MIME 유형을 사용하고 있습니다. 절대 수행 할 수 없습니다.

또한 SQL 쿼리에 넣기 전에 값을 이스케이프 처리하지 않습니다. addslashesmysql_real_escape_string 또는 준비된 진술과 동일하지 않습니다.

또한 실패 에 익숙해해야하는 대신 무한 중첩 if의 조기 : 이미지 데이터에

if ($error !== UPLOAD_ERR_OK) { 
    echo 'fail'; 
    continue; 
} 

if ($_FILES['file']['size'][$file] > $max) { 
    echo 'fail'; 
    continue; 
} 

... 
+0

미안하지만 $ fileSize와 $ fileType이 될 수 있습니다. 그렇지만 오류가 아닙니다. – user1056534

+0

@user 그러면 여기서 오랫동안 추측 할 수 있습니다. 업로드 후 이미지 데이터를 확인하고, 데이터베이스에 저장된 결과를 확인한 다음 다시 출력물을 확인하여 불일치를 찾습니다. 'bin2hex ($ blob)'과 diff 도구를 추천한다. – deceze

+0

@user 내 의견을 기존 코드에 통합하십시오. – deceze

관련 문제