文件上傳功能在開發過程中是非常常見的功能,可以上傳文件也可以上傳頭像等,不同的瀏覽器文件上傳有不同的效果,下面透過本文給大家分享使用php完成常見的文件上傳功能,需要的朋友參考下吧
文件上傳現在都是很常見的了,可以上傳文件,上傳頭像等,不同的瀏覽器「文件上傳」有不同的效果
先看下火狐瀏覽器的效果是這樣的:
再看下IE瀏覽器是這樣的:
還有很多其他的瀏覽器,就不一一的查看效果了,那麼這個上傳是怎麼實現的呢?
一、檔案上傳功能
#(1)第一是要有這個上傳頁面了
#首先是要寫表單元素了(其中就有處理頁面“關於上傳的處理了,其中有些規則可以寫”,還有傳輸方式,再就是一個重要的屬性,因為是文件上傳,所以要有這個屬性:enctype="multipart/form-data")再就是關於按鈕了,表單決定之後,就是裡面的內容,檔案上傳自然按鈕的型別是「file」;然後就是「上傳」按鈕了,這個要用到提交,所以按鈕類型要用「submit」的,程式碼如下:
<form action="wenjiansccl.php" method="post" enctype="multipart/form-data"> <!--处理页面起个名字,做文件上传是这个属性:enctype="multipart/form-data"--> <input type="file" name="file"/> //浏览文件的按钮 <input type="submit" value="上传" /> //提交的上传按钮 </form>
先看下效果:
var_dump($_FILES["file"]); //输出传过来的值
輸出結果如圖:
注意:因為下面會用到這張圖中的信息,在這個我先起個名字(array),便於下面用到時講述不清楚
不難看出數個二維數組:其中有檔案的名稱,類型,保存位置,錯誤訊息和檔案的大小,這樣其實檔案就會臨時的保存在伺服器上了
上傳檔案時有4項注意項目:
1.控制上傳檔案的類型
2.控制上傳檔案的大小
3.防止檔案名稱重複
3.1修改已儲存的檔案名稱
3.11使用者名稱時間戳隨機數檔名
3.12個流量檔名
3.12個流水號
#>
3.21public/lch/2017-2-12/1.jpg
4.儲存檔案知道了這四個注意項目(也相當於步驟),那麼就開始一步一步的寫入處理頁面就可以了
(1)在輸出時,可以看到不是有一項是「錯誤」項嘛,首先可以判斷是否傳輸有誤
if($_FILES["file"]["error"]) //将文件传值到处理页面,找到出错的索引,也就是(array)图中的错误项error { echo $_FILES["file"]["error"]; }
(2)上面是如果出錯就輸出出錯訊息,沒有錯就是進行下面的內容了:按照注意事項開始寫吧
首先是:控制檔案上傳時的類型和大小(也是從(array)圖中找到類型type和大小size,然後將它們賦想要的類型值就可以了)我們限定了jpeg和png這兩種,也可是多種,用「或」寫上就可以了。這裡也用個if語句判斷下(如果檔案類型是jpeg或png且檔案大小是小於1024000的就可以上傳,否則就是上傳失敗)
if($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png" && $_FILES["file"]["size"]<1024000) {<br> //注意事项3和4的内容<br>} else { echo "文件类型不正确!"; }
#(3)在程式碼中的註解(注意事項3和4的內容)開始寫入檔案的避免重複和保存
第一:找到檔案的儲存位置(想要儲存在哪個位置) ,然後拼接上修改檔案名稱的方式(使用時間戳記方式)
$filesname = "./files/".date("YmdHis").$_FILES["file"]["name"]; //$_FILES["file"]["name"]这也同样的也是(array)图的名称name
第二:判斷檔案是否存在(存在就提示,不存在就保存到資料夾中)
if(file_exists($filesname)) //file_exists()方法:判断文件是否存在,里面的值就是定义的保存位置 { echo "文件已经存在"; //存在给出提示 } else { //不存在就,保存文件(move_uploaded_file()保存) move_uploaded_file($_FILES["file"]["tmp_name"],$filesname); //里面的值要有当前的保存位置,将要保存到哪的位置 } <span style="font-family: 宋体; font-size: 15px"><span style="font-size: 18px">注意:</span><br>1.可能上传的时候是UTF-8的编码格式,Windows是用的国标的编码格式,上传上汉子可能成为乱码了,可以在文件保存位置下面加上“转换编码格式”<br>使用的是:</span><span style="font-size: 15px">iconv()方法:</span><span style="font-size: 15px">里面有3个值,一是现在使用的编码格式,二是想要转换的编码格式,三是想要转换的字符串</span> $filename = iconv("UTF-8","gb2312",$filesname); //这个iconv()里面有3个值,一是现在使用的编码格式,二是想要转换的编码格式,三是想要转化的字符串 <span style="font-family: 宋体; font-size: 15px">2.如果上面的文件的上传格式是篡改的格式,也用move_uploaded_file()方法</span>
到此這個檔案上傳就結束了,可以試試看。 二,上傳檔案預覽
。上傳圖片時,都會先看效果怎麼樣,然後再上傳的,接下來就是圖片預覽功能了
(1)可以先有個檔案按鈕,用於選擇檔案
#<input id="uploadImage" type="file" name="photoimage" class="fimg1" onchange="PreviewImage();" /> //对这个按钮加一个事件
(2)用來顯示的這個圖片的一個p
<p id="uploadPreview"></p>
給這個p加點樣式
#uploadPreview { width: 168px; height: 168px; background-position: center center; background-size: cover; border: 4px solid #fff; -webkit-box-shadow: 0 0 0px 0px rgba(0, 0, 0, 0); display: inline-block;<br>}
看下效果:
然后就是写事件了
$("#uploadImage").on("change", function(){ // 得到一个参考文件列表 var files = !!this.files ? this.files : []; // 如果没有选择任何文件,或者没有文件读到就返回 if (!files.length || !window.FileReader) return; // 只有进行选择的文件是一个形象 if (/^image/.test( files[0].type)){ // 创建一个新的FileReader的实例 var reader = new FileReader(); // 读取本地文件作为一个DataURL reader.readAsDataURL(files[0]); // 当加载时,图像数据设置为背景的p reader.onloadend = function(){ $("#uploadPreview").css("background-image", "url("+this.result+")"); } } });
这只是一个简单的上传预览,上传到文件中的处理页面还没有写,改天补上完整的上传图片代码
看下选中图片的效果
这样,文件上传和图片预览就结束了,这两个结合一下就可以做出图片的上传了,过后我会继续补充完整的~~~
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关推荐:
以上是php實作完成常見的文件上傳功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境