2013-11-24 2 views
-4

사용자가 이미지를 업로드 할 때 데이터베이스에 데이터를 보내려고하므로 모든 이미지 데이터가 mysql 데이터베이스에 저장됩니다. 작동하도록하려면 어떻게해야합니까?이미지 보내기 데이터베이스에 데이터 업로드

사용자 이미지 업로드 그는

Upload: wallpaper.jpg 
Type: image/jpeg 
Size: 8.7072027134876 kB 
Stored in: upload/wallpaper.jpg 

그래서 나는 형식 열에서 유형, 크기 크기 열에서 링크에서 유사 이미지 링크와 같은 데이터베이스에 데이터를 저장하려면 업로드에 성공한 후 데이터의 유형을 볼 수있는 경우

다음
<?php 
$username = "root"; 
    $password = "123"; 
    $hostname = "localhost"; 

    $dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database"); 

    $selected = mysql_select_db("user", $dbhandle); 

$allowedExts = array("gif", "jpeg", "jpg", "png"); 
$temp = explode(".", $_FILES["file"]["name"]); 
$extension = end($temp); 
if (($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg") 
|| ($_FILES["file"]["type"] == "image/x-png") 
|| ($_FILES["file"]["type"] == "image/png") 
&& ($_FILES["file"]["size"] <= 200000) 
&& in_array($extension, $allowedExts)) 




    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/10024) . " kB<br>"; 

    if (file_exists("upload/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 
     } 
    } 
    } 
else 
    { 
    echo "Invalid file"; 
    } 
?> 

은 H : 여기에

내 PHP 코드입니다 TML 코드

<html> 
<body> 

<form action="upload_file.php" method="post" 
enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file"><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

</body> 
</html> 
+0

무엇이 당신의 질문입니까? 어떤 오류가 발생합니까? – benka

+0

들어오는 데이터 스트림을 가져 와서 base64로 인코딩하고 데이터베이스의 BLOB에 저장해야합니다. – nrathaus

+1

더 좋은 방법은 BLOB에 저장하는 것이 아니라 저장된 파일에 대한 참조 링크입니다. 그렇게하면 상황이 복잡해지며 DB 크기가 상당히 증가합니다. –

답변

-1

추가 :

$link="upload/" . $_FILES["file"]["name"]; 
$filetype=$_FILES["file"]["type"]; 
$filesize=$_FILES["file"]["size"]; 
$sql=mysql_query("INSERT INTO `tblname` (`size`,`type`,`link`) VALUES ('$filesize','$filetype','$link')") or die(mysql_error()); 

후 :

echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 

는 당연히 당신은 당신이 당신의 데이터를 저장하기 전에 mysql_connectmysql_select_db가 초기화 얻어야한다. 그리고 틀림없이 size, type, link 열이 테이블에 있어야합니다.

+0

진짜 애매한, 내 대답 downvoted하고 받아 들였습니다. 어쨌든, 저자 덕분에 –

관련 문제