2011-12-10 2 views
0

에 의해 방울 형태로 MySQL 데이터베이스에 이미지를 저장할하지만, 다음과 같은 오류가 표시됩니다 :은 내가 BLOB 유형으로 PHP로 MySQL 데이터베이스에 이미지를 저장할 PHP

경고 : getimagesize (3272) function.getimagesize] : 그런 파일이나 디렉토리 F에 :

if($_POST['upload'] == 'upload') { 
    // connect to database 
    mysql_connect("localhost","root","") or die(mysql_error()); 
    mysql_select_db("image") or die(mysql_error()); 

    // name of the upload image 
    $name = addslashes($_FILES['uploadImage']['name']); 
    // image 
    $image = addslashes(file_get_contents($_FILES['uploadImage']['tmp_name'])); 
    $size = getimagesize($_FILES['uploadImage']['size']); 


    if($size == FALSE) { 
     echo "NO image selected $form"; 
    } 
    else { 
     move_uploaded_file($_FILES['uploadImage']['tmp_name'],"UploadImage/".$name); 

     if(!($result = mysql_query(" INSERT INTO image VALUES ('','$name','$image') "))) { 
      echo "uploading image problem $form";  
     } 

     } 
: XAMPP \ \ htdocs를 \ 0412 \ form.php 15

내가 다음 코드를 사용 줄에 스트림을 열지 못했다

+0

왜 어쨌든, 데이터베이스에 이미지를 저장할 것인가? 귀하의 파일 시스템은 그렇게하기에 완벽합니다. – aefxx

+0

[전에이 질문을했습니다] (http://stackoverflow.com/questions/8460517/i-want-to-store-image-on-mysql-database-by-php-as-blob-type). 사람들은 당신이 데이터베이스에 이미지를 저장하면 안된다고 말했습니다. 나는 당신이 충고를 받아 디스크에 이미지를 저장할 것을 강력히 권합니다. – Bojangles

답변

2

이 줄 :

$size = getimagesize($_FILES['uploadImage']['size']); 

은 할 필요가 대신

$size = getimagesize($_FILES['uploadImage']['tmp_name']); 

. getimagesize()은 이미지 데이터에서 이미지 의 크기를 얻습니다. 전달한 값은 업로드 크기 (바이트)를 나타내는 숫자입니다.

위의 올바른 예제는 tmp_name에있는 임시 위치에서 이미지를 엽니 다.

+0

Manny Manny 감사합니다. – sabbir

+0

문제 없습니다. @aefxx가 그의 코멘트에서 말했듯이, 여러 가지 이유로 데이터베이스가 아닌 파일 시스템에 파일을 저장하는 것이 더 나은 방법입니다. 또한, [질문에 대한 대답을 수락하십시오] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), 현재 및 미래를 잊지 마십시오. – Bojangles

+0

@ sabbir - 도움이된다면이 대답을 받아 들일 수 있습니다. –

1

그냥 다음 코드를 : 사용

if($_POST['upload'] == 'upload') { 

    mysql_connect("localhost","root","") or die(mysql_error()); 
    mysql_select_db("image") or die(mysql_error()); 

    $name = addslashes($_FILES['uploadImage']['name']); 
    $image = file_get_contents($_FILES['uploadImage']['tmp_name']) ; 

    if(!($result = mysql_query(" INSERT INTO image VALUES ('','$name','$image')")))   echo "uploading image problem $form";  

} 
관련 문제