插入圖片和一般的數據沒什么不同的,一般數據會了,傳圖片時候就用個move_uploaded_file改變下參數,主要是做這個的時候不要有負擔
創(chuàng)新互聯(lián)是專業(yè)的平涼網站建設公司,平涼接單;提供網站設計制作、網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行平涼網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
以下供參考
?
function upload_file($files,$folder)//上傳圖片
{
$file_tyle = $files['type'];
$file_type_arr = array('image/gif','image/x-png','image/jpg','image/pjpeg');
if(!in_array($file_tyle,$file_type_arr) )
{
exit('file type only can be: png,jpeg,jpg,gif');
}
$knamearray = explode(".",$files["name"]);
$kname = $knamearray[count($knamearray)-1];
$rand_str = date("ymdhis");
$file_name = $rand_str.".".$kname;
$savepath = "$folder/";
/*$savepath = "$folder/date_".date('YmdHis')."/";
if( !is_dir($savepath) ) mkdir($savepath);*/
$upfile = $savepath.$file_name;
if( !move_uploaded_file($files['tmp_name'],$upfile) )
{
exit('upload error, please check your file type: png,jpeg,jpg,gif');
}
return $file_name;//不要回傳值此行可注釋掉
}
?
下面是一個簡單的php上傳圖片到服務器圖片名存入數據庫的例子。因為我的機子上沒有裝mysql所以沒有測試。但是如果出現問題只要小改動應該就可以了。同時這只是基本的上傳示例,所以功能也并不完善。存入數據庫的是文件名。而不是完整的http地址。這樣子方便網站整體移動。
?
$db = mysql_connect("127.0.0.1", "huoreee","lljghkg");//連接mysql數據庫,地址,用戶名,密碼
mysql_query("SET NAMES 'GBK'");//中文亂碼解決
mysql_select_db("mydata",$db);//選擇數據庫名稱
if($_POST[['filename']""){
copy($userfile,$_POST['filename']); //上傳圖片服務器當前文件所在文件夾
$exec="insert into imagedata (i_name) value('".$_POST['filename']."')";//sql添加語句,添加圖片名到數據庫
mysql_query($exec);//執(zhí)行添加sql操作
header("Location: 這個網頁地址/名");//改一下,添加成功轉回本頁
}else{
header("Location: 這個網頁地址/名");//改一個,添加不成功轉回本頁
}
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title無標題文檔/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
把圖片保存到服務器,拼接圖片地址
保存圖片地址到數據庫
讀取圖片地址就能訪問到圖片了。
本文實例講述了PHP實現上傳圖片到數據庫并顯示輸出的方法。分享給大家供大家參考,具體如下:
1.
創(chuàng)建數據表
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.
用于上傳圖片到服務器的頁面
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
上傳文件到數據庫:
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
"圖片已存儲到數據庫";
}
else
{
echo
"請求失敗,請重試";
注:圖片是以二進制blob形式存進數據庫的,像這樣
4.
顯示圖片的php
getimage.php
?php
$id
=2;//
$_GET['id'];
為簡潔,直接將id寫上了,正常應該是通過用戶填入的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;
到瀏覽器查看已經上傳的圖片,看是否可以顯示
是沒有問題的,證明圖片已經以二進制的形式存儲到數據庫了
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php+mysql數據庫操作入門教程》、《php+mysqli數據庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:php實現上傳圖片保存到數據庫的方法php上傳圖片存入數據庫示例分享php上傳圖片到指定位置路徑保存到數據庫的具體實現php中如何將圖片儲存在數據庫里php下將圖片以二進制存入mysql數據庫中并顯示的實現代碼php
從數據庫提取二進制圖片的處理代碼php將圖片保存入mysql數據庫失敗的解決方法php將圖片文件轉換成二進制輸出的方法php圖片的二進制轉換實現方法
1首先最好不要把圖片存數據表。除非是做為資料保存。有些教材與網上的代碼的處理方式太老了,不要再模仿。當然你的代碼中沒有看出來是用什么方式存儲圖片的。
2如果你是想把圖片存到數據表中,你的$file實際上只是文件名。應該讀圖片的流數據寫到表中。
3如果你僅是存文件名到數據表,圖片在指定文件夾中存放,則應該是出在路徑上。
只能告訴你思路,思路一說估計你就會了,
首先你要有數據表去存圖片,
其次你要回php的文件上傳,當文件上傳成功后你把上傳的圖片存到你的服務器上面具體位置也是你自己定的,這樣你就可以把你上傳上來的圖片所放置的位置存到數據庫就好了。