2013-03-28 3 views
0

MySQL 데이터베이스에 blob 형식으로 미리로드 된 이미지를 저장할 필요가 있습니다. 여기에 테이블 구조가 문을 만드는 것입니다PHP를 사용하여 mySQL의 폼에서 미리로드 된 이미지를 저장하는 방법

<form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
     <td>Image Name</td> 
     <td><input type="text" name="imgName" id="imgName" /></td> 
    </tr> 
    <tr> 
     <td>Image</td> 
     <td><input type="image" name="myImg" id="myImg" src="images/1209894_11404408.jpg" /></td> 
    </tr> 
    <tr> 
     <td>&nbsp;</td> 
     <td>&nbsp;</td> 
    </tr> 
    <tr> 
     <td colspan="2" align="center" valign="middle"><input type="submit" name="Submit" id="Submit" value="Submit" /></td> 
    </tr> 
    </table> 
    <input type="hidden" name="MM_insert" value="form1" /> 
</form> 

: 여기

양식 코드입니다. 내가 사용하고

CREATE TABLE IF NOT EXISTS `img` (
    `img_id` int(11) NOT NULL AUTO_INCREMENT, 
    `img_name` varchar(200) DEFAULT NULL, 
    `img_img` longblob, 
    PRIMARY KEY (`img_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

Inser 쿼리는 다음과 같습니다 : 나는 이노 사용하고

INSERT INTO img (img_name, img_img) VALUES ('$_POST['imgName']', '$_POST['myImg']') 

TIA

요기 양을

답변

1

당신이 당신의 HTML 양식을 설정해야합니다 우선 파일 업로드를 지원하려면 올바른 양식 태그가 허용됩니다.

<form enctype="multipart/form-data" id="form1" name="form1" action="<?php echo $editFormAction; ?>" method="post"> 

그리고 PHP 스크립트는 업로드 폼이 뭔가처럼 될 것입니다 처리하는 : 당신이 당신에게 MySQL의 연결을 열 먼저해야 할 물론

if (isset($_FILES['myImg']) && $_FILES['myImg']['size'] > 0) { 
    $tmpName = $_FILES['myImg']['tmp_name']; 
    $fp = fopen($tmpName, 'r'); 
    $data = fread($fp, filesize($tmpName)); 
    $data = addslashes($data); 
    fclose($fp); 

    //Fill all the other form vars 

    $query = "INSERT INTO img "; 
    $query .= "(img_img) VALUES ('$data')"; 
    $results = mysql_query($query, $link); 
} 

및 완료 후 닫습니다.

희망이 있습니다.

친절에 대해서

+0

내 원래의 게시물을 읽는다면 내가 특별히 이미지가 입력 제어 (의 형태로로드 된 사전입니다 말했다 <입력 유형 = "이미지"이름 = "myImg"ID = "myImg"SRC = "images/1209894_11404408.jpg"/>) 이미지 파일을 서버에 업로드하는 데 문제가 없습니다. 나는 여기서 네가 제안한 방법을 보여주는 그물에 대한 많은 해결책이 있다는 것을 안다. 하지만 제 요구 사항은 매우 다릅니다. 내 요구 사항을 다시 말해 보겠습니다. 입력 된 파일에 'image'형식의 이미지를로드하고 싶습니다. 그래서 브라우저에 표시된 이미지의 내용을 서버의 파일에 저장하려고합니다. 고마워. –

0

마지막으로 해결책을 찾았습니다.

다음은 이미지를 MySQL에 올바르게 저장하는 데 사용해야하는 코드입니다. 같은 방법으로

INSERT INTO img (img_name, img_img) VALUES ('$_POST['imgName']', base64_decode(substr('$_POST['myImg']', 22))); 

우리가이 사람을 도움이되기를 바랍니다

$myid = fopen($filesavepath.$imgfilename,'wb'); 
$svgimg=$_REQUEST['svgimg']; 
fputs($myid, base64_decode(substr($_POST['myImg'], 22))); 
fclose($myid); 

PHP

에 다음 코드를 사용하여 서버에 파일을 저장합니다.

요기 양