使用php+mysql保存與輸出文件
發(fā)表時間:2024-06-08 來源:明輝站整理相關軟件相關文章人氣:
[摘要]本地文件上傳到服務器后,服務器的腳本對文件進行保存,一般有兩種方式,一種是作為 文件保存到機器的特定目錄下,但是這里就有很多諸如文件重名帶來的種種不便之處,有的程 序自動改文件名字,把名字加上上傳時間等方法以保證文件名的唯一性,這樣失去了文件的原 始名字,通過文件名查詢特定的文件信息也有很多困難,...
本地文件上傳到服務器后,服務器的腳本對文件進行保存,一般有兩種方式,一種是作為 文件保存到機器的特定目錄下,但是這里就有很多諸如文件重名帶來的種種不便之處,有的程 序自動改文件名字,把名字加上上傳時間等方法以保證文件名的唯一性,這樣失去了文件的原 始名字,通過文件名查詢特定的文件信息也有很多困難,不利于文件的統(tǒng)一管理;一種是把文 件保存到數(shù)據(jù)庫中利用數(shù)據(jù)庫的強大功能,可以方便的實現(xiàn)文件的各種操作。本文采用的是第 二種方法。 這一組程序演示了,如何將硬盤的一個文件通過網頁,上傳到服務器的數(shù)據(jù)庫里面,并且 讀出文件的內容。 使用說明: 一共有5個程序,說明如下: 1. file.sql --- 本程序要用到的數(shù)據(jù)庫表的結構[注:數(shù)據(jù)庫用的是test] 2. upload.php --- 上傳表單 3. submit.php --- 上傳處理程序 4. show_info.php --- 顯示部分上傳的文件信息 5. show_add.php --- 顯示[下載]文件 ////////////////////////////////////////////////////////////////////// (1)file.sql --- //簡要說明 保存上傳得文件的基本信息的數(shù)據(jù)庫結構,此處注意保存文件內容的字段,使用longtext類型 因為普通的blob類型最大存儲64k字節(jié)。另外,一般php的默認配置最大上傳文件為2m,如果上 傳的文件特別大,莫忘了調整php.ini的設置哦。 //文件源碼 create table receive( id int not null auto_increment, #主鍵,自動累加 file_data longblob, #文件內容 file_type varchar(100), #文件類型 file_name varchar(255), #文件名字 file_size int, #文件大小 primary key(id) #主鍵 ) ////////////////////////////////////////////////////////////////////// (2)upload.php --- //簡要說明 上傳界面,用戶選擇文件,然后提交給submit.php處理 值得注意的是一個 max_file_size的隱藏值域,通過設置其value可 以限制上載文件的大小。 //程序源碼
////////////////////////////////////////////////////////////////////// (3)submit.php --- //簡要說明 把用戶上傳得文件連同文件的基本信息保存到數(shù)據(jù)庫里 //程序源碼 顯示上傳文件信息"; } else { echo "你沒有上傳任何文件"; } ?>////////////////////////////////////////////////////////////////////// (4)show_info.php --- //簡要說明 從數(shù)據(jù)庫里取出文件的基本信息[文件名和文件大小]。 //程序源碼 <1) die("error:="" no="" this="" recorder");="" 下面兩句程序也可以這么寫="" $row="mysql_fetch_object($result);" $name="$row-">name; //$size=$row->size; $name = mysql_result($result,0,"file_name"); $size = mysql_result($result,0,"file_size"); mysql_close($conn); echo "
上傳的文件的信息:"; echo "
the file's name - $name"; echo "
the file's size - $size"; echo "
附件"; ?> ////////////////////////////////////////////////////////////////////// (5)show_add.php --- //簡要說明 從數(shù)據(jù)庫里取出文件內容 //程序源碼 <1) die("error:="" no="" this="" recorder");="" $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("content-type:$type");="" header("content-disposition:="" attachment;="" filename="$name" );"="" echo="" $data;="">1)>本程序在 win2000 pro + apache 1.13.19 + php 4.0.5 + mysql 3.23.36 下通過。1)>