代碼示例
創(chuàng)新互聯(lián)建站是專業(yè)的唐河網(wǎng)站建設(shè)公司,唐河接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行唐河網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
upload.htm
form enctype="multipart/form-data" action="upload.php" method="post"
input type="hidden" name="max_file_size" value="100000"
文件名:input name="filename"br
文件:input name="userfile" type="file"br
input type="submit" value="上傳文件"
/form
upload.php
?
copy($userfile,$_POST['filename']);
echo $userfile."-用戶上傳到服務(wù)器上的文件臨時(shí)存放的名稱br";
echo $userfile_name."-在用戶機(jī)器上該文件的原始名稱br";
echo $userfile_size."-上傳文件的實(shí)際字節(jié)數(shù)br";
echo $userfile_type."-如果用戶的瀏覽器提供了這個(gè)信息的話,它表示mime的類型。例如image/gifbr";
?
a href="upload.htm"繼續(xù)上傳/a
很簡單,關(guān)鍵的只有一句copy就搞定了,存入數(shù)據(jù)庫嘛,也很簡單。
你都不說是啥子數(shù)據(jù)庫。唉!其實(shí)光要代碼在我以前的論壇中都是不允許的。
思路,大概思路是這樣的。一般都是將圖片上傳到服務(wù)器自己設(shè)定的一個(gè)目錄下,同時(shí)將圖片名稱等信息插入數(shù)據(jù)表,數(shù)據(jù)庫存圖片名稱路徑就好了。不要將圖片的二進(jìn)制信息存入數(shù)據(jù)庫,那樣很浪費(fèi)數(shù)據(jù)庫空間非常不好(本人曾經(jīng)這樣看教程做過)。至于你說的怎么在另一個(gè)php文件引用,要么查詢數(shù)據(jù)庫取到圖片名稱路徑。具體上傳代碼可以參考:HTML代碼form enctype="multipart/form-data" action="__URL__" method="POST" input type="hidden" name="MAX_FILE_SIZE" value="30000" / Send this file: input name="userfile" type="file" / input type="submit" value="Send File" //formphp代碼?php print_r($_FILES['userfile']);//打印看看結(jié)果,然后查看手冊$_FILES研究下吧?
下面是一個(gè)簡單的php上傳圖片到服務(wù)器圖片名存入數(shù)據(jù)庫的例子。因?yàn)槲业臋C(jī)子上沒有裝mysql所以沒有測試。但是如果出現(xiàn)問題只要小改動(dòng)應(yīng)該就可以了。同時(shí)這只是基本的上傳示例,所以功能也并不完善。存入數(shù)據(jù)庫的是文件名。而不是完整的http地址。這樣子方便網(wǎng)站整體移動(dòng)。
?
$db = mysql_connect("127.0.0.1", "huoreee","lljghkg");//連接mysql數(shù)據(jù)庫,地址,用戶名,密碼
mysql_query("SET NAMES 'GBK'");//中文亂碼解決
mysql_select_db("mydata",$db);//選擇數(shù)據(jù)庫名稱
if($_POST[['filename']""){
copy($userfile,$_POST['filename']); //上傳圖片服務(wù)器當(dāng)前文件所在文件夾
$exec="insert into imagedata (i_name) value('".$_POST['filename']."')";//sql添加語句,添加圖片名到數(shù)據(jù)庫
mysql_query($exec);//執(zhí)行添加sql操作
header("Location: 這個(gè)網(wǎng)頁地址/名");//改一下,添加成功轉(zhuǎn)回本頁
}else{
header("Location: 這個(gè)網(wǎng)頁地址/名");//改一個(gè),添加不成功轉(zhuǎn)回本頁
}
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title無標(biāo)題文檔/title
/head
body
form enctype="multipart/form-data" action="upload.php" method="post"
input type="hidden" name="max_file_size" value="100000"
文件名:input name="filename"br
文件:input name="userfile" type="file"br
input type="submit" value="上傳文件"
/form
/body
/html
1首先最好不要把圖片存數(shù)據(jù)表。除非是做為資料保存。有些教材與網(wǎng)上的代碼的處理方式太老了,不要再模仿。當(dāng)然你的代碼中沒有看出來是用什么方式存儲(chǔ)圖片的。
2如果你是想把圖片存到數(shù)據(jù)表中,你的$file實(shí)際上只是文件名。應(yīng)該讀圖片的流數(shù)據(jù)寫到表中。
3如果你僅是存文件名到數(shù)據(jù)表,圖片在指定文件夾中存放,則應(yīng)該是出在路徑上。
本文實(shí)例講述了PHP實(shí)現(xiàn)上傳圖片到數(shù)據(jù)庫并顯示輸出的方法。分享給大家供大家參考,具體如下:
1.
創(chuàng)建數(shù)據(jù)表
CREATE
TABLE
ccs_image
(
id
int(4)
unsigned
NOT
NULL
auto_increment,
description
varchar(250)
default
NULL,
bin_data
longblob,
filename
varchar(50)
default
NULL,
filesize
varchar(50)
default
NULL,
filetype
varchar(50)
default
NULL,
PRIMARY
KEY
(id)
)engine=myisam
DEFAULT
charset=utf8
2.
用于上傳圖片到服務(wù)器的頁面
upimage.html
!doctype
html
html
lang="en"
head
meta
charset="UTF-8"
meta
name="viewport"
content="width=device-width,
user-scalable=no,
initial-scale=1.0,
maximum-scale=1.0,
minimum-scale=1.0"
meta
http-equiv="X-UA-Compatible"
content="ie=edge"
style
type="text/css"
*{margin:
1%}
/style
titleDocument/title
/head
body
form
method="post"
action="upimage.php"
enctype="multipart/form-data"
描述:
input
type="text"
name="form_description"
size="40"
input
type="hidden"
name="MAX_FILE_SIZE"
value="1000000"
br
上傳文件到數(shù)據(jù)庫:
input
type="file"
name="form_data"
size="40"br
input
type="submit"
name="submit"
value="submit"
/form
/body
/html
3.
處理圖片上傳的php
upimage.php
?php
if
(isset($_POST['submit']))
{
$form_description
=
$_POST['form_description'];
$form_data_name
=
$_FILES['form_data']['name'];
$form_data_size
=
$_FILES['form_data']['size'];
$form_data_type
=
$_FILES['form_data']['type'];
$form_data
=
$_FILES['form_data']['tmp_name'];
$dsn
=
'mysql:dbname=test;host=localhost';
$pdo
=
new
PDO($dsn,
'root',
'root');
$data
=
addslashes(fread(fopen($form_data,
"r"),
filesize($form_data)));
//echo
"mysqlPicture=".$data;
$result
=
$pdo-query("INSERT
INTO
ccs_image
(description,bin_data,filename,filesize,filetype)
VALUES
('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
if
($result)
{
echo
"圖片已存儲(chǔ)到數(shù)據(jù)庫";
}
else
{
echo
"請求失敗,請重試";
注:圖片是以二進(jìn)制blob形式存進(jìn)數(shù)據(jù)庫的,像這樣
4.
顯示圖片的php
getimage.php
?php
$id
=2;//
$_GET['id'];
為簡潔,直接將id寫上了,正常應(yīng)該是通過用戶填入的id獲取的
$dsn='mysql:dbname=test;host=localhost';
$pdo=new
PDO($dsn,'root','root');
$query
=
"select
bin_data,filetype
from
ccs_image
where
id=2";
$result
=
$pdo-query($query);
$result=$result-fetchAll(2);
//
var_dump($result);
$data
=
$result[0]['bin_data'];
$type
=
$result[0]['filetype'];
Header(
"Content-type:
$type");
echo
$data;
到瀏覽器查看已經(jīng)上傳的圖片,看是否可以顯示
是沒有問題的,證明圖片已經(jīng)以二進(jìn)制的形式存儲(chǔ)到數(shù)據(jù)庫了
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+mysql數(shù)據(jù)庫操作入門教程》、《php+mysqli數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:php實(shí)現(xiàn)上傳圖片保存到數(shù)據(jù)庫的方法php上傳圖片存入數(shù)據(jù)庫示例分享php上傳圖片到指定位置路徑保存到數(shù)據(jù)庫的具體實(shí)現(xiàn)php中如何將圖片儲(chǔ)存在數(shù)據(jù)庫里php下將圖片以二進(jìn)制存入mysql數(shù)據(jù)庫中并顯示的實(shí)現(xiàn)代碼php
從數(shù)據(jù)庫提取二進(jìn)制圖片的處理代碼php將圖片保存入mysql數(shù)據(jù)庫失敗的解決方法php將圖片文件轉(zhuǎn)換成二進(jìn)制輸出的方法php圖片的二進(jìn)制轉(zhuǎn)換實(shí)現(xiàn)方法
?php
//var_dump($_FILES);
for($i=1;$i3;$i++){
//判斷文件上傳是否出錯(cuò)
if($_FILES["myfile$i"]["error"]0){
switch($_FILES["myfile$i"]["error"]){
case 1; echo"文件過大(大于php.ini 配置文件的限制)";break;
case 2; echo"文件超出了html表單Max_FILE_size選項(xiàng)所指定得值";break;
case 3; echo"文件只被部分上傳";break;
case 4; echo"沒有上載任何文件";break;
}
die;
}
//判斷文件類型
if(!in_array($_FILES["myfile$i"]["type"],array("image/jpeg","image/png","image/gif"))){
echo"文件類型不合法?。ㄖ荒苌蟼鱦pg,gif,png格式圖片)" ;
continue;
die;
}
$dir = dirname(__FILE__)."/uploaded/";
$filename= $_FILES["myfile$i"]["name"];
if(is_uploaded_file($_FILES["myfile$i"]["tmp_name"])){
if(move_uploaded_file( $_FILES["myfile$i"]["tmp_name"],$dir.$filename)){
echo "文件上傳成功br" ;
file_put_contents("./data.txt"," img src='".date("Y-m-d")."/".$filename."'width=200\n",FILE_APPEND);
}else{
echo "文件移動(dòng)失敗" ;
}
}else{
echo "文件不合法(非http post方式上傳的文件)" ;
}
}
$link = mysql_connect ("127.0.0.1","root","root") or die("連接數(shù)據(jù)庫失敗!");
//選擇庫
mysql_select_db("123");
//設(shè)置編碼
mysql_query("set names utf8");
//是否寫入到數(shù)據(jù)庫
if(mysql_query("insert into chuan(mysql1,mysql2) values('".$_FILES["myfile$i"]["name"]."','".$filename."')")){
echo "文件上傳成功br";
//顯示圖片
$str= file_get_contents("./data.txt");
$img_arr = explode("\n",$str);
foreach($img_arr as $img){
echo $img."br";
}
?
當(dāng)前文章:php圖片上傳數(shù)據(jù)表,php 上傳圖片
URL地址:http://chinadenli.net/article20/hdohjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)頁設(shè)計(jì)公司、做網(wǎng)站、企業(yè)網(wǎng)站制作、定制開發(fā)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)