藏刊網,職稱文章發表、期刊投稿權威機構

投稿咨詢

投稿在線咨詢

專著咨詢

合著&獨著&編委

編輯在線咨詢

專利咨詢

專利申請&轉讓

編輯在線咨詢

軟著版權

軟著版權

編輯在線咨詢

在線溝通

論文&專著&專利

編輯在線咨詢

微信聊

微信掃一掃

首頁 > 計算機論文 > > PHP文件上傳類的程序實現
PHP文件上傳類的程序實現
>2024-05-28 09:00:00



引 言

在 Web 應用程序開發中,通常文件上傳是不可缺少的功能.用戶可以根據各種需求將文檔資料或圖像視頻等資料上傳到 Web 服務器.由于上傳文件的類型、大小及編碼方式的不同,開發者在設計上傳模塊時必須考慮到各種可能出現的問題.當客戶端使用 HTTP 協議進行文件上傳,文件上傳過程是比較復雜的.根據網站上傳文件的各種需求,開發為實現這些功能的類可以有效地解決文件上傳問題.

1 文件上傳過程介紹與配置文件設置

本 文 使 用 的 開 發 環 境 為 Wndows+A-pache+MySQL+PHP.PHP 可以實現多種瀏覽器上傳文件.文件上傳的過程其實就是一個文件復制的過程,客戶端通過 HTTP 協議以 POST 方式將表單提交給服務器后,上傳的文件被放置在臨時目錄里,服務器端腳本對文件進行進一步處理,一般是要將文件從臨時目錄移動到指定的目錄中,需要使用函數move_uploaded_file 移動提交的文件,進而完成整個文件上傳過程.

配置文件 php.ini 中設置參數如下

file_uploads :設為 On,允許通過 HTTP 上傳文件upload_tmp_dir :文件上傳至服務器時用于臨時存儲的目錄,如果沒指定,系統會使用默認的臨時文件夾.

upload_max_filesize :允許上傳文件大小的最大值,默認情況下 PHP 上傳文件大小為 2 M,用戶需要上傳大于 2 M 的文件,但是利用 HTTP 協議又不能上傳太大的文件,因此,需要適當修改相關參數.

upload_max_filesize 設置數值可以大于 2 M,即允許上傳文件的最大值可以大于默認的 2 M.

post_max_size:PHP 可接收的 post 數據的最大值,該值應大于允許上傳文件大小的最大值.設置post_max_size 數值可以大于 8 M,8 M 通常是通過表單 POST 給 PHP 的所能接收的最大值,包括表單里的所有值.

memory_limit:腳本所占的最大內存數,該值要大于允許上傳的文件大小.

max_execution_time:腳本運行的最長時間\\(s\\),默認 30 S.

2 實現文件上傳的類

定義一個上傳類 upload,其構造函數如下.

function __construct \\($fileArr, $savename, $savepath,
$fileformat, $overwrite = 0,$maxsize = 0\\) {
$this->file = $fileArr['file'];
$this->file_name = $fileArr['name'];
$this->file_size = $fileArr['size'];
$this->file_type = $fileArr['type'];
$this->get_ext\\(\\);
$this->set_savepath\\($savepath\\);
$this->set_fileformat\\($fileformat\\);
$this->set_overwrite\\($overwrite\\);
$this->set_savename\\($savename\\);
$this->set_maxsize\\($maxsize\\);
}

在構造函數中,參數$fileArr 為文件數組,name為上傳文件名,size 為上傳文件大小,type 為上傳文件類型,參數 savename 為文件保存名,參數 savepath 為文件保存路徑,參數 fileformat 為文件格式,參數 over-write 指是否覆蓋文件,參數 maxsize 為文件最大值.

接下來運行的程序要檢查文件格式、檢查目錄是否可寫入文件、檢查文件是否已經存在、檢查文件大小是否超過限制,然后使用 move_uploaded_file 函數上傳文件,代碼如下.

if \\(!$this->validate_format\\(\\)\\)
{
$this->errno = 1;
return false;
}
if\\(!@is_writable\\($this->savepath\\)\\)
{
$this->errno = 2;
return false;
}
if \\($this->overwrite == 0 && @file_exists\\($th-
is->savepath.$this->savename\\)\\)
{
$this->errno = 3;
return false;
}
if \\($this->maxsize != 0 \\)
{
if \\($this->file_size > $this->maxsize\\)
{
$this->errno = 5;
return false;
}
}
if \\(!move_uploaded_file \\($this->file, $th-
is->savepath.$this->savename\\)\\)
{
$this->errno = 4;
return false;
}

3 文件上傳解決方案

為了實現文件的上傳,在

標記中,必須設置屬性 enctype="multipart/form-data",服務器就會知道上傳文件有表單數據.當文件上傳時,上傳文件將會保存在 windows 的臨時目錄中,通過 php.ini 文件upload_tmp_dir 設置,在默認情況下,該目錄是 web服務器上的臨時目錄,腳本執行完畢后,該文件將被刪除.

method="post">

align="center" cellpadding="0" cellspacing="0" bordercol-
or="#008080" id="AutoNumber1" style="border-collapse: col-
lapse">










align="center" class="style2"> 文件上傳
align="center">* 文件上傳地址:
name="myupfile">
(大小〈2 M 比較合適)


    value=" 重置 " name="B2">



客戶端與服務器通信使用超文本傳輸協議,服務器端接收客戶端 POST 方法提交的數據,通過 PHP腳本語言取得文件數組,設置允許上傳的文件類型、文件上傳目錄,然后創建類 upload 的對象,執行構造函數,進行各種檢查,運行文件上傳的程序段以實現文件的上傳,最后釋放對象.

include_once "upload.class.php";
if \\($_POST[add]==" 上傳 "\\){
$fileArr['file'] = $myupfile;
$fileArr['name'] = $myupfile_name;
$fileArr['size'] = $myupfile_size;
$fileArr['type'] = $myupfile_type;
echo $file;
echo $file_name;
$filetypes = array \\('gif','jpg','jpge','png','doc'\\); // 所允許上
傳的文件類型
$savepath = "upload/"; // 文件上傳目錄
$maxsize = 0;
$overwrite = 0;
$upload = new upload \\($fileArr, $myupfile_name,
$savepath, $filetypes, $overwrite, $maxsize\\);
if \\(!$upload->run\\(\\)\\)
{
echo $upload->errmsg\\(\\);
}
}
?>

4 結 論

本文設計的文件上傳類的特點是:可以對文件上傳進行控制,利用類創建的對象及其方法可以獲得全部上傳文件的信息,文件上傳類使用方便;可以定制上傳文件的大小、類型等.本文實現的文件上傳類可以支持多文件上傳、減低開發難度、節省開發時間,有效地實現文件的上傳.

參考文獻:

[1] Welling L,Thomson L.PHP 和 MySQL Web 開發[M].北京:清華大學出版社,2009.

[2] 張恩民.PHP 開發實戰權威指南[M].北京:清華大學出版社,2012.

[3] 蘇貴斌,馬季骕.使用 JavaBeans 組件實現文件上傳[J].內蒙古師范大學學報,2004\\(4\\):400-403.

[4] 李 斌.PHP 開發環境下文件上傳的原理與實現[J].電腦開發與應用,2013\\(10\\):30-32.

綜合排序
投稿量
錄用量
發行量
教育界

主管:廣西壯族自治區新聞出版局

主辦:廣西出版雜志社

國際:ISSN 1674-9510

國內:CN 45-1376/G4

級別:省級期刊

中國報業

主管:中國報業協會

主辦:中國報業協會

國際:ISSN 1671-0029

國內:CN 11-4629/G2

級別:國家級期刊

中國房地產業

主管:中華人民共和國住房部和...

主辦:中國房地產業協會

國際:ISSN 1002-8536

國內:CN 11-5936/F

級別:國家級期刊

建筑與裝飾

主管:天津出版傳媒集團有限公司

主辦:天津科學技術出版社有限...

國際:ISSN 1009-699X

國內:CN 12-1450/TS

級別:省級期刊

財經界

主管:國家發展和改革委員會

主辦:國家信息中心

國際:ISSN 1009-2781

國內:CN 11-4098/F

級別:國家級期刊

文化月刊

主管:中華人民共和國文化部

主辦:中國文化傳媒集團有限公司

國際:ISSN 1004-6631

國內:CN 11-3120/G2

級別:國家級期刊

期刊在線投稿系統
上傳文件
支持上傳.doc、.docx、.pdf文件
18年國內外學術服務,發表國際文獻請認準藏刊網官網

資深編輯團隊

專業設計投入方案

投稿成功率極高

企業信譽保障

對公交易更安全

人民群眾口碑好

高效投稿流程

審稿快!出刊快!檢索快!

正規刊物承諾

無假刊!無套刊!

投稿成功!

藏刊網提醒您

1.稿件將進入人工審稿階段,審稿后會有編輯聯系您,請保持手機暢通。

2.為避免一稿多投、重刊等現象影響您的發表,請勿再投他刊。

確定

投稿失??!

藏刊網提醒您

由于網絡問題,提交數據出現錯誤,請返回免費投稿頁面重新投稿,謝謝!

確定

藏刊網收錄400余種期刊,15年誠信發表服務。

發表職稱文章,覆蓋教育期刊、醫學期刊、經濟期刊、管理期刊、文學期刊等主流學術期刊。

  投稿郵箱:cangkan@163.com

本站少量資源屬于網絡共享如有侵權請您聯系我們,將在第一時間刪除。

版權 2009-2022 版權所有:河北藏刊文化發展有限公司 工信部備案:ICP備20016223號 冀公網安備13010502002858號

青青青爽不卡一区二区_操婷婷色六月中文字幕_国产精品yjizz视频网_中文无码一级大片_A级毛片100部免费观