PHP使用原生函數(shù)實(shí)現(xiàn)文件上傳及下載
文件上傳:
if ( $_FILES && $_FILES[’attachment’] && $_FILES[’attachment’][’tmp_name’]){ $filesize = $_FILES[’attachment’][’size’]; //文件上傳大小限制:5M if($filesize > 5*1024*1024){exit(’上傳文件大小超出限制!’); } //文件保存目錄,如果不存在則創(chuàng)建之 $uploaddir = ROOT_DIR.’/public/attachment/notice/’; if(!file_exists($uploaddir))mkdir($uploaddir,0755,true); //獲取上傳文件擴(kuò)展名 $arr_file = explode(’.’, basename($_FILES[’attachment’][’name’])); $filetype = $arr_file[count($arr_file)-1]; //獲取源文件名 $attachment_name = basename($_FILES[’attachment’][’name’]); //對文件進(jìn)行重命名以避免中文字符的影響 $fname = md5(basename($_FILES[’attachment’][’name’]).microtime()).’.’.$filetype; $uploadfile = $uploaddir . $fname; if (move_uploaded_file($_FILES[’attachment’][’tmp_name’], $uploadfile)) {//獲取文件相對路徑$attachment = ’/public/attachment/notice/’. $fname; } else {exit(’文件上傳失??!’); }}
注:'attachment'是上傳文件name,根據(jù)項(xiàng)目中的具體屬性值修改之。本上傳處理未對文件類型做限制處理,可根據(jù)具體需求自己處理之。
文件下載:
//輸入文件標(biāo)簽 Header ( 'Content-type: application/octet-stream' ); Header ( 'Accept-Ranges: bytes' ); Header ( 'Accept-Length: ' . filesize ( $attachment_filepath ) ); Header ( 'Content-Disposition: attachment; filename=' . $attachment_filename ); //輸出文件內(nèi)容 //讀取文件內(nèi)容并直接輸出到瀏覽器 echo file_get_contents($attachment_filepath); exit ();
相關(guān)文章:
1. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算2. Java實(shí)現(xiàn)UDP通信過程實(shí)例分析【服務(wù)器端與客戶端】3. JS圖片懶加載庫VueLazyLoad詳解4. Java PreparedStatement用法詳解5. Python 解決火狐瀏覽器不彈出下載框直接下載的問題6. Java利用TCP協(xié)議實(shí)現(xiàn)客戶端與服務(wù)器通信(附通信源碼)7. 使用AJAX(包含正則表達(dá)式)驗(yàn)證用戶登錄的步驟8. Java實(shí)現(xiàn)的迷宮游戲9. HTML <!DOCTYPE> 標(biāo)簽10. Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝

網(wǎng)公網(wǎng)安備