2014-11-04 3 views
0

mysql 데이터베이스를 사용하여 PHP로 웹 사이트를 만들었습니다. 웹 사이트는 로컬 호스트에서 완벽하게 작동하지만 공급자 서버에 업로드하면 이미지가 표시되지 않습니다. 공급자 서버에서 데이터베이스를 검사 할 때 이미지 파일이 저장되어 있으므로 잃어버린 것 이외의 다른 문제는 아닙니다. 미리 감사드립니다.데이터베이스 제공 업체의 이미지가 표시되지 않았습니다. 로컬 호스트에서 작동합니다.

이미지를 표시 할 수있는 PHP 페이지의 코드 :

<img src="ObjectImage.php?nObjectID=<?php echo $row['fldObjectID']; ?>" name="ObjectImage" id="ObjectImage"> 

ObjectImage.php 문서의 코드 :

<?php 
$nObjectID = $_GET['nObjectID']; 
include '../Connection.php'; 
$result = mysqli_query($con, "SELECT fldObjectImage FROM tblobjecten WHERE fldObjectID='$nObjectID'"); 
$row = mysqli_fetch_array($result); 
$image = $row['fldObjectImage']; 
mysqli_close($con); 
header('Content-Type: image/jpg'); 
echo $image; 
?> 
+0

은 오류 로그를 확인해 봤어? –

+0

로컬 호스트와 공급자 서버에서 $ image를 파일 (var_export ($ image, TRUE) 등)을 사용하여 덤프하고 결과를 비교합니다. – Claudix

+0

소스를 볼 때 이미지 src 속성이 실제 서버에 실제로 표시되는 대상은 무엇입니까? –

답변

0

당신이 코드에서 수행하는 것은 매우 위험합니다. 쿼리에 SQL 삽입이 있습니다. mysqli를 사용할 때 prepared statement를 사용한다.

이미지를 BLOB 필드에 저장하는 가장 좋은 방법은 아닙니다. 많은 문제가있을 수 있습니다. 모든 것이 UTF-8임을 데이터베이스 인코딩에서 확인하십시오.

그런 다음 오류가 발생하면 로그를 확인하십시오. 헤더 명령 앞에 오류가있을 수 있습니다. 헤더가 전송되기 전에 출력이있어서 이미지가 표시되지 않으므로 오류가 발생합니다.

마지막 가능성 <img src="ObjectImage.php 디렉토리 항목이 많아서 브라우저가 PHP 파일을 찾을 수 없습니다. 이런 식으로 뭔가를 시도 :

<img src="/ObjectImage.php

+0

답장을 보내 주셔서 감사합니다. 불행히도 문제가 해결되지 않았습니다. 로그를 확인했는데 오류가 없었습니다. 나는 ObjectImage.php 페이지 (헤더 출력을 먼저 제거함)를 여는 테스트 링크를 넣으려고 시도했다. PHP 오류가 발생했는지 알아보기 위해,이 경우는 아니다. 파일이 내 결과 집합에 있습니다 (원시 파일에 에코를했는데, mumbojambo를 생성합니다). 로컬에서 완벽하게 작동하기 때문에 공급자가 서버에서 허용하지 않는 것과 거의 같습니다. – DevJeroenNL

+0

데이터베이스 인코딩을 확인한 결과, 확실하지 않다고 생각합니다. MySQL의 charset : UTF-8 유니 코드 (utf8) MySQL 연결 정렬 : utf8_unicode_ci – DevJeroenNL

+0

나는 며칠 동안 나가기 전에 두 저녁에 대한 해결책을 찾고있었습니다. 나는 집에 돌아 왔을 때 해결책을 찾기를 희망했지만 아무도 반응하지 않았다. 다른 사람들도 생각을 해봤습니까? 아마도 스토니는 다른 아이디어를 가지고있을 것입니다. 내가 필사적으로되기 시작하면서 더 많은 의견이 가치가있다. 솔루션이 내 데이터베이스에 이미지를 저장하는 것이 아니라는 것을 알고 있지만 필자는 필자가 왜 이런 식으로하고 싶은지에 대한 이유가 있습니다. 미리 감사드립니다! – DevJeroenNL

관련 문제