PHP 파일 업로드 PHP 파일을 데이터베이스에 업로드

WBOY
풀어 주다: 2016-07-25 08:51:37
원래의
2046명이 탐색했습니다.
PHP는 어떻게 파일을 데이터베이스에 업로드합니까? 다음은 몇 가지 예입니다. MySQL 데이터베이스에 파일을 저장하는 방법과 PHP에서 파일을 업로드하고 데이터베이스에 저장하는 방법을 익히세요.

php 데이터베이스에 파일 업로드 이 파일을 저장하기 위해 데이터베이스에 longblob 필드를 생성하는 것 이상입니다. 다만, 4~5m 크기의 파일을 업로드할 경우 주의해야 할 문제가 있습니다

1. php.ini 수정

포스트_최대_크기 upload_max_filesize

2개의 매개변수 값은 업로드해야 하는 파일 크기보다 크게 설정하세요

2, my.cnf 수정 mysql 데이터베이스의 max_allowed_packet 매개변수 값을 수정합니다. 이 매개변수의 의미: max_allowed_packet 가방의 최대 크기입니다. 메시지 버퍼는 net_buffer_length 바이트로 초기화되지만 필요한 경우 max_allowed_packet 바이트로 늘릴 수 있습니다. 기본적으로 이 값은 너무 작아서 큰(잘못된) 패킷을 캡처할 수 없습니다. 큰 Blob 열을 사용하는 경우 이 값을 늘려야 합니다. 사용하려는 가장 큰 blob만큼 커야 합니다.

1. PHP는 데이터베이스에 이미지를 업로드합니다.

3개의 PHP 파일을 만듭니다. readdir.php - 이미지를 데이터베이스에 저장하는 코드 image.php - 실제 이미지를 표시하는 코드 view.php - 데이터베이스에서 이미지를 호출하는 방법을 보여주는 코드

1. 데이터베이스를 만듭니다.

테이블 `이미지` 생성( `imgid` int는 null이 아닙니다. `sixfourdata` 긴 텍스트가 null이 아닙니다. 기본 키(`imgid`) );

readdir.php

세부정보:

$dbcnx = mysql_connect("localhost", "username", "password"); mysql_select_db("base64imgdb"); ?> '디렉토리를 열어야 합니다. "./" 'readdir.php 파일은 다음 디렉토리에 있습니다: $경로 = "./"; $dir_handle = opendir($path) 또는 die("$path 디렉토리를 열 수 없습니다");

이미지를 분류하고 사용되는 일부 데이터를 읽어보세요. fopen '전환하다 base64_encode '테이블에 삽입

while ($file = readdir($dir_handle)) { $filetyp = substr($file, -3); if ($filetyp == 'gif' or $filetyp == 'jpg') { $handle = fopen($path . "/" . $file,'r'); $file_content = fread($handle,filesize($path . "/" . $file)); fclose($handle); $encoded = chunk_split(base64_encode($file_content)); $sql = "insert into images set sixfourdata='$encoded'"; mysql_query($sql); } } ?>

설정된 디렉토리를 닫은 후 다음을 처리하세요.

closedir($dir_handle); echo("complete"); mysql_close($dbcnx); ?>

이미지를 읽는 코드: image.php

$dbcnx = mysql_connect("localhost", "username", "password"); mysql_select_db("base64imgdb"); ?>

이미지 image.php?img=x를 읽는 데 사용되는 코드:

$img = $_request["img"]; ?>

그런 다음 데이터베이스에 연결하여 읽어야 합니다.

$result = mysql_query("select * from images where imgid=" . $img . ""); if (!$result) { echo("요청 오류: " . mysql_error() . ""); 출구(); } while ($row = mysql_fetch_array($result)) { $imgid = $row["imgid"]; $encodeddata = $row["sixfourdata"]; } ?>

mysql_close($dbcnx); echo base64_decode($encodeddata); ?>

base64로 인코딩된 이미지 데이터 형식을 이해합니다. "구체적인 사진을 살펴보자! view.php" image.php?img=1 image.php?img=357

readdir.php:

############################## # DB 연결 # 이 값을 변경합니다 ############################## $dbcnx = mysql_connect("localhost", "사용자 이름", "비밀번호"); mysql_select_db("base64imgdb"); ############################### # db connection # change these values ############################### $dbcnx = mysql_connect("localhost", "username", "password"); mysql_select_db("base64imgdb");

$path = "./"; $dir_handle = opendir($path) 또는 die("$path 디렉토리를 열 수 없습니다"); while ($file = readdir($dir_handle)) { $filetyp = substr($file, -3); if ($filetyp == 'gif' 또는 $filetyp == 'jpg') { $handle = fopen($file,'r'); $file_content = fread($handle,filesize($file)); fclose($handle); $인코딩=chunk_split(base64_encode($file_content)); $sql = "sixfourdata='$encoded'로 설정된 이미지에 삽입""; mysql_query($sql); } }

closedir($dir_handle); echo("완료"); mysql_close($dbcnx); ?>

image.php:

$dbcnx = mysql_connect("localhost", "사용자 이름", "비밀번호"); $dbcnx = mysql_connect("localhost", "username", "password");

mysql_select_db("base64imgdb");

$img = $_request["img"];

$result = mysql_query("imgid=" . $img . "");

if (!$result) {

echo("쿼리 수행 중 오류 발생: " . mysql_error() . ""); 출구(); } while ($row = mysql_fetch_array($result) ) { $imgid = $row["imgid"]; $encodeddata = $row["sixfourdata"]; } mysql_close($dbcnx); echo base64_decode($encodeddata); ?>

view.php (이 글은 올릴 필요가 없을 것 같네요..)

.. ..

2. PHP에서 파일을 업로드하고 데이터베이스에 저장하는 방법

1. show_info.php

$num=mysql_num_rows($result); if($num

$data = mysql_result($result,0,"file_data"); $type = mysql_result($result,0,"file_type"); $name = mysql_result($result,0,"file_name");

mysql_close($conn);

//먼저 해당 파일 헤더를 출력하고 원래 파일명을 복원합니다. header("콘텐츠 유형:$type"); header("콘텐츠 처리: 첨부 파일; 파일 이름=$name"); 에코 $ 데이터; ?>

2.show_info.php

$sql = "id=$id인 경우 수신에서 file_name,file_size를 선택합니다."; $result = mysql_query($sql,$conn); if(!$result) die(" 오류: mysql 쿼리");

//지정된 레코드가 없으면 오류가 보고됩니다. $num=mysql_num_rows($result); if($num

//다음 두 문장의 프로그램도 이렇게 쓸 수 있습니다. //$row=mysql_fetch_object($result); //$이름=$행->이름; //$size=$row->크기; $name = mysql_result($result,0,"파일_이름"); $size = mysql_result($result,0,"file_size");

mysql_close($conn);

echo "


업로드된 파일 정보:"; echo "
파일 이름 - $name"; echo "
파일 크기 - $size"; echo "
첨부파일"; ?>

3.submit.php

$myfile=$_files["myfile"];

//타임아웃 제한 시간을 설정합니다. 기본 시간은 30초입니다. 0으로 설정하면 시간 제한이 없습니다. $time_limit=60; set_time_limit($time_limit) //

//파일 내용을 문자열로 읽어옵니다. $fp=fopen($myfile['tmp_name'], "rb"); if(!$fp) die("파일 열기 오류"); $file_data = addlashes(fread($fp, filesize($myfile['tmp_name']))); fclose($fp); unlink($myfile['tmp_name']);

//파일 형식, 이름, 크기 $file_type=$myfile["유형"]; $file_name=$myfile["이름"]; $file_size=$myfile["크기"]; 죽다($file_type); //데이터베이스에 연결하고 파일을 데이터베이스에 저장합니다. $conn=mysql_connect("localhost","루트","관리자"); if(!$conn) die("오류 : mysql 연결 실패"); mysql_select_db("nokiapayplat",$conn);

$sql="수신에 삽입 (파일_데이터, 파일_유형, 파일_이름, 파일_크기) 값 ​​('$file_data','$file_type','$file_name',$file_size)"; $result=mysql_query($sql,$conn);

//다음 문장은 방금 삽입문의 ID를 꺼냅니다. $id=mysql_insert_id();

mysql_close($conn);

set_time_limit(30); //기본 시간 초과 설정 복원

echo "업로드 성공---"; echo "업로드된 파일 정보 표시"; } 또 다른 { echo "파일을 업로드하지 않으셨습니다."; } ?>

4.php.php 업로드

파일 업로드 양식
选择上传文件


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