> 백엔드 개발 > PHP 튜토리얼 > Windows 보안 경고를 끄는 방법 자세한 설명: - 데이터베이스에 사진을 저장하는 방법

Windows 보안 경고를 끄는 방법 자세한 설명: - 데이터베이스에 사진을 저장하는 방법

WBOY
풀어 주다: 2016-07-29 08:35:25
원래의
1060명이 탐색했습니다.

이미지 파일, HTML 파일과 같은 바이너리 데이터를 MySQL 데이터베이스에 직접 저장하고 싶다면 이 문서가 적합합니다! HTML 양식을 통해 이러한 파일을 저장하는 방법과 이러한 파일에 액세스하고 사용하는 방법을 보여 드리겠습니다.

이 기사 개요:

. mysql에서 새 데이터베이스 만들기

. 파일 저장 방법에 대한 예제 프로그램

. 파일에 액세스하는 방법에 대한 예제 프로그램

mysql에 새 데이터베이스 만들기

먼저 mysql에 새 데이터베이스를 만들어야 합니다. 해당 바이너리 파일을 이 데이터베이스에 저장합니다. 이 예에서는 데이터베이스를 생성하기 위해 다음 구조를 사용합니다.

다음 단계를 수행해야 합니다.

. MySql 컨트롤러를 입력하세요

. "데이터베이스 bin_data 생성" 명령을 입력합니다.

. "binary_data 사용" 명령을 입력하세요.

. 명령을 입력하세요

"CREATE TABLE bin_data(id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, 설명 CHAR(50), bin_data LONGBLOB, 파일 이름 CHAR(50), 파일 크기 CHAR(50), 파일 유형 CHAR(50));" 줄바꿈)

사고가 없으면 데이터베이스와 테이블을 생성해야 합니다.

파일 저장 방법에 대한 예제 프로그램

이 예제를 사용하면 HTML 형식을 통해 파일을 데이터베이스로 전송할 수 있습니다.

<ccid_code>store.php3
<?php
// store.php3 - by Florian Dittmer <dittmer@gmx.net>
?>
<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>
<?php
// 如果提交了表单,代码将被执行:
if ($submit) {
// 连接到数据库
// (你可能需要调整主机名,用户名和密码)
MYSQL_CONNECT( "localhost", "root", "password");
mysql_select_db( "binary_data");
$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) 
[接上一行:] VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')"); 
$id= mysql_insert_id();
  print "<p>This file has the following Database ID: <b>$id</b>";
MYSQL_CLOSE();
} else {
// 否则显示储存新数据的表单
?>
<form method="post" action=" <?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
File Description:<br>
<input type="text" name="form_description" size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>File to upload/store in database:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>
<?php
}
?>
</BODY>
</HTML></ccid_code>
로그인 후 복사

이 프로그램을 실행하면 간단한 Html 양식이 표시되며 "찾아보기"를 클릭하여 파일을 선택한 다음 제출을 클릭합니다.

파일이 웹 서버에 업로드되면 프로그램은 방금 업로드한 파일의 ID를 알려줍니다. 나중에 사용할 수 있도록 이 ID를 기억해 두세요.

파일 액세스 방법에 대한 샘플 프로그램

이 프로그램을 사용하여 방금 저장한 파일에 액세스할 수 있습니다.

<ccid_code><?php
// getdata.php3 - by Florian Dittmer <dittmer@gmx.net>
// 调用方法: getdata.php3?id=<id>
if($id) {
// 你可能需要调整主机名,用户名和密码:
 @MYSQL_CONNECT( "localhost", "root", "password");
 @mysql_select_db( "binary_data");
 $query = "select bin_data,filetype from binary_data where id=$id";
 $result = @MYSQL_QUERY($query);
 $data = @MYSQL_RESULT($result,0, "bin_data");
 $type = @MYSQL_RESULT($result,0, "filetype");
Header( "Content-type: $type");
echo $data;
};
?></ccid_code>
로그인 후 복사

프로그램은 어떤 파일에 액세스할지 알아야 하며 ID를 매개변수로 전달해야 합니다.

예: 데이터베이스에 있는 파일 ID는 2입니다. 다음과 같이 호출할 수 있습니다.

getdata.php3?id=2

이미지를 데이터베이스에 저장하면 사진처럼 불러올 수 있습니다.

예: 데이터베이스에 있는 이미지 파일의 ID는 3입니다. 다음과 같이 호출할 수 있습니다.

1MB보다 큰 파일을 저장하는 방법:

1MB보다 큰 파일을 저장하려면 프로그램, PHP 설정, SQL 설정을 많이 수정해야 합니다.

다음 팁은 24MB보다 작은 파일을 저장하는 데 도움이 될 수 있습니다.

1. store.php3을 수정하고 MAX_FILE_SIZE 값을 24000000으로 변경합니다.

2. PHP 설정을 수정하세요. 일반적인 상황에서 PHP는 2MB보다 작은 파일만 허용합니다. (php.ini에서) 값을 24000000으로 변경해야 합니다.

3. MYSQL 데이터 패킷 크기 제한을 제거합니다. 일반적인 상황에서 MYSQL 데이터 패킷은 1MB 미만입니다.

4. 다음 매개변수를 사용하여 MYSQL을 다시 시작해야 합니다.

/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O Record_buffer=1M -O max_allowed_packet=24M

5. 오류가 계속 발생하는 경우:

느린 연결로 대용량 파일을 저장하는 경우 시간 초과 오류일 수 있습니다. PHP의 기본 시간 제한은 30초입니다. max_execution_time(php.ini에서) 값을 -1로 변경할 수 있습니다

위 내용은 Windows 보안 경고를 끄는 방법을 소개합니다. - Windows 보안 경고를 끄는 방법을 포함하여 데이터베이스에 사진을 저장하는 방법이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿