檔案上傳 所謂檔案上傳,就是將檔案由客戶端的主機,藉 由瀏覽器傳送到伺服器的資料夾上。

Slides:



Advertisements
Similar presentations
分享人:張益源. 個人資料介紹 姓名:張益源 畢業:體育系 97 級 專長:田徑、籃球、游泳 任教學校:慈濟大學實驗國民小學 學校職務:體育兼資訊老師.
Advertisements

区域游戏指导策略 龙福幼活动区教研活动
南崁國民小學 班級經營創意 報告人:姜佳孟.
十年职业生涯规划 —— 年 姓名:刘娟 学号:.
国内知名高校 医学院(部、中心) 院系及附属医院设置情况 调研报告
语文园地三 《说说我自己》 三年级下册语文 体育东路小学 杨毅
大学语文 诗词部分 散文部分 小说部分 戏剧部分 行政公文写作 申论.
雲的種類.
《计算机网络技术》 动态网页制作技术 常用HTML控件课程积件 杨 姝.
概率论与数理统计 数学与金融学院 戴 泽 兴.
壹、教學檔案介紹(前菜) 貳、教學檔案平台介紹(主菜) 參、檔案目錄範例及小叮嚀(甜點)
关注老龄化 贯彻《老年法》 王育忠.
第六章 网页设计与制作基础.
动态Web开发技术--JSP.
第 4 章 PHP 基本語法.
基于JSP搭建Web应用程序.
第8讲 HTML与PHP基础 静态网页 vs. 动态网页.
Web Programming 網際網路程式設計
——奧科特公開及內部培訓 系列課程(三)之十一
第13章 FTP檔案上傳、 自動傳送 報告人 M9153314 李育旻.
模块1 网页设计基础 实训1 体验HTML文档 1.1 网页基础知识 1.2 网站配色方案 1.3 网站设计常用软件
提升课堂质量 助推教师成长 促进教学改革 “一师一优课,一课一名师”活动总结 河南省实验小学.
認證與檔案上傳 學習目標 基本原理 資料庫連線與選擇 執行查詢 取回答案 SQL Injection.
经 络 学.
构建道德课堂 “做中学”教学模式的创新与研究 总结汇报 黄河中学.
第3章 超文本标记语言(HTML) 3.1 基本结构标记 3.2 文本格式标记 3.3 超链接标记<A></A>
引入檔 (include, require) 檔案處理 檔案上傳
Hello World 體驗實作第一個JSP程式.
Chap5 PHP程式設計進階 授課講師:.
行動研究就是一種行動性的研究,由行動者來進行研究,而不是由外於行動領域的學者與與科學家來進行,研究的問題也取自行動。
【PHP程式設計】 實作一:計算BMI.
第四章 網頁表單與資料傳遞.
Introduction to PHP part3
2018/11/11 CGI程式設計進階 (for UNIX Perl) 國立中央大學電算中心 陳慶彥.
PHP +MySQL快速入門 Lesson 4.
Ch11 檔案上傳及電子郵件 WEB程式設計.
ASP.NET 網頁製作教本 – 從基本語法學起
专题4:JSP脚本和指令.
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
Ch11 檔案存取 網頁程式設計.
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
Lesson 5 :基礎應用二(留言版) (2004/08/20).
進階 WWW 程式設計 -- PHP Regular Expression 靜宜大學資訊管理學系 蔡奇偉副教授 2004
第六讲 JSP中的文件操作(2) 教学目的 本讲继续讲述JSP中使用Java输入、输出流实现文件的读写操作 。 1 文件上传 2 文件下载
PHP+MySQL互動式網頁程式設計班 檔案上傳程式設計 講師:林業峻 CSIE, NTU 7 / 3, 2010.
第12章 JSP的檔案與電子郵件處理 12-1 伺服端的檔案處理 12-2 伺服端檔案的讀取與寫入 12-3 客戶端的檔案上傳
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 程式流程控制結構.
進階 WWW 程式設計 -- PHP 語言結構(三) 靜宜大學資訊管理學系 蔡奇偉副教授 2003
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
PHP 變數、常數與運算子 變數 常數 運算子
表單(Form).
架站實做—AppServ
网页设计与制作教程第5版 机械工业出版社同名教材 配套电子教案.
HTML 103 互動式網頁.
實驗目的: 快速建置論壇、部落格及電子商務系統
檔案上傳
Chap5 PHP程式設計進階 授課講師:.
Ch09 在網頁之間傳遞資訊 網頁程式設計.
表單(Form).
第六章 迴圈與陣列.
HTTP 1.1 Method OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT
HTML 103 互動式網頁 助教:黃毓瑩.
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
第6章 PHP的数据采集.
中国农业科学院博士后学术论坛 博士后基金申请的经验及体会 中国农业科学院生物技术研究所 秦 华 博士
Web安全基础教程
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
表单页面 表单是用户利用浏览器对Web站点网络数据库进行查询的一种界面,用户利用表单可以输入信息或选择选项等,然后将这些信息提交给服务器进行处理。通过表单,既可以将浏览器的信息发送到Internet服务器上,同时表单也可以使用户与站点的浏览者交互或从浏览者那里收集信息。它是网页的设计者和使用者相互交流的工具。表单对象包括文本域(单行、多行、密码)、列表、菜单、复选框、单选框、按钮等。
第5章 新增課程與課程管理.
Presentation transcript:

檔案上傳 所謂檔案上傳,就是將檔案由客戶端的主機,藉 由瀏覽器傳送到伺服器的資料夾上。 在網頁中將檔案由客戶端上傳到伺服器中,其中要經歷的 過程如下: 在表單檔案欄位選取要上傳的檔案。 表單送出,將檔案傳送到伺服器。 伺服器在接收的過程中,先將接收到的檔案放置在暫存資料 夾中。 傳送完畢後將完整的檔案搬移到指定的網頁資料夾中。

檔案上傳 參數調整 在使用檔案上傳的功能前,對於 PHP 的執行環境要進行以 下的檢查及調整。 是否允許上傳 file_uploads=On 請開啟允許網頁伺服器允許上傳的設定: 暫存檔資料夾 upload_temp_dir=“C:\Windows\Temp” 在檔案上傳到網頁伺服器時會先放在暫存資料夾,完成 後才搬到指定資料夾。若沒有設定暫存資料夾會造成上 傳失敗,若在 Windows 系統中您可以參考以下設定: 可接受上傳檔案大小 upload_max_filesize= 8M 在 <php.ini> 中預設的大小為 2MB,建議您可以調整為 8MB 到 10MB 之間,適用於大部份的需求。

檔案上傳 表單 上傳檔案的表單,有幾個重要的注意事項: 在 <form> 標籤中「action」屬性必須設定要接收檔案的 PHP 程式檔。 在 <form> 標籤中,傳送方式屬性必須要設定為「method="post"」,因為檔案上傳的表單的傳送一定要使用 POST 的方法。 在 <form> 標籤中,因為傳送檔案所以要設定傳遞時資料的編碼方式,這裡要加上「enctype="multipart/form-data"」的屬性,才能正確地讓檔案欄位送出。 上傳的檔案欄位為 <input> 標籤,屬性必須設定「type="file"」,如此即可在使用時出現 瀏覽 鈕,讓使用者選取要上傳的檔案。

接收上傳檔案 在程式端接收到檔案,並不是馬上將檔案放置 到指定的資料夾中,而是先將檔案儲存成暫存 檔,在完成檔案傳輸後再將檔案搬移到指定資 料夾。 取得暫存檔資訊 您可以使用 $_FILES 取得暫存檔的資訊,參 考次頁:

上傳檔案範例 upload.html <form action="upload.php" method="post" enctype="multipart/form-data"> 請選取要上傳的檔案:<br /> <input type="file" name="fileUpload" /><br /> <input type=“submit” value=“上傳檔案” /> <input type=“reset” value=“重設”/> </form>

上傳檔案範例 upload.php <?php if($_FILES[" fileUpload "]["error"]==0) { $tmpName = $_FILES[" fileUpload "]["tmp_name"]; $fileName = "./" . $_FILES[" fileUpload "]["name"]; if(move_uploaded_file($tmpName, $fileName)) { echo "上傳成功<br />"; echo "檔案名稱:" . $_FILES[" fileUpload "]["name"] . "<br />"; echo "檔案類型:" . $_FILES[" fileUpload "]["type"] . "<br />"; echo "檔案大小:" . $_FILES[" fileUpload "]["size"] . "<br />"; } else { echo "上傳失敗! "; echo "<a href='javascript:window.history.back();'>回上一頁</a>"; } ?>

move_uploaded_file( ) $tmpName = $_FILES[" fileUpload "]["tmp_name"]; $fileName = "./files/" . $_FILES[" fileUpload "]["name"]; if(move_uploaded_file($tmpName, $fileName)) { }

上傳檔名中文問題 中文版的伺服器若使用 Big5 編碼,但網 頁送過來資料卻是以 UTF8 編碼,將導致 編碼錯誤,檔案上傳失敗。 解決之道: iconv("UTF-8" , "big5" , $utf8FileName) $tmpName = $_FILES["fileUpload"]["tmp_name"]; $fileName = "./files/" . iconv("UTF-8" , "big5" , $_FILES["fileUpload"]["name"]); if(move_uploaded_file($tmpName, $fileName)) { }

Restrictions on Upload $arrTypes =array ("image/gif", "image/png", "image/jpeg", "image/pjpeg"); if (in_array($_FILES["pic"]["type"], $arrTypes) && ($_FILES["pic"]["size"] < 500000)) { if ($_FILES["pic"]["error"] > 0) { echo "Error: " . $_FILES["pic"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["pic"]["name"] . "<br />"; echo "Type: " . $_FILES["pic"]["type"] . "<br />"; echo "Size: " . ($_FILES["pic"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["pic"]["tmp_name"]; // Move file … else { echo "Invalid file"; ?>

檢查檔案是否已存在 if (file_exists("files/" . $_FILES["pic"]["name"])) { echo $_FILES["pic"]["name"] . " already exists. <br/>"; } else { move_uploaded_file($_FILES["pic"]["tmp_name"], "files/" . $_FILES["pic"]["name"]); echo "Stored in: " . "files/" . $_FILES["pic"]["name"];

$arrTypes =array ("image/gif", "image/png", "image/jpeg", "image/pjpeg"); if (in_array($_FILES["pic"]["type"], $arrTypes) && ($_FILES["pic"]["size"] < 500000)) { if ($_FILES["pic"]["error"] > 0) { echo "Error: " . $_FILES["pic"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["pic"]["name"] . "<br />"; echo "Type: " . $_FILES["pic"]["type"] . "<br />"; echo "Size: " . round(($_FILES["pic"]["size"] / 1024),2) . " Kb<br />"; echo "Stored in: " . $_FILES["pic"]["tmp_name"] . "<br/>"; if (file_exists("files/" . $_FILES["pic"]["name"])) { echo $_FILES["pic"]["name"] . " already exists. "; move_uploaded_file($_FILES["pic"]["tmp_name"], "files/" . $_FILES["pic"]["name"]); echo "Stored in: " . "files/" . $_FILES["pic"]["name"]; echo "Invalid file";

imgUpload.html imgUpload.php 

多檔上傳 若您有上傳多個檔案的需求,在表單欄位佈置上也必 須在表單名稱後加上[]左右括號,讓表單欄位以陣列 方式傳送。 在接收時以 $_FILES 陣列方式接收即可完成。但是要 注意的是這個陣列是二維陣列 例如 第一個檔案: 暫存檔名稱:$_FILES[欄位名稱] ["tmp_name"][0] 原始名稱:$_FILES[欄位名稱]["name"][0] 第二個檔案: 暫存檔名稱:$_FILES[欄位名稱]["tmp_name"][1] 原始名稱:$_FILES[欄位名稱]["name"][1]

多檔上傳範例 <form action="php_file10.php" method="post" enctype="multipart/form-data"> 請選取要上傳的檔案:<br /> 檔案一:<input type="file" name="fileUpload[]" /><br /> 檔案二:<input type="file" name="fileUpload[]" /><br /> 檔案三:<input type="file" name="fileUpload[]" /><br /> <input type="submit" value="送出資料" />

多檔上傳範例 <?php $cnt=count($_FILES["fileUpload"]["name"]); for ($i=0;$j<$cnt;$i++) { if ($_FILES["fileUpload"]["error"][$i]==0) { if (move_uploaded_file($_FILES["fileUpload"]["tmp_name"][$i], "./files/".$_FILES["fileUpload"]["name"][$i])) { echo $_FILES["fileUpload"]["name"][$i]."上傳成功!<br />"; } else { echo $_FILES["fileUpload"]["name"][$i]."上傳失敗!<br />"; } ?>