免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

php文件上傳的示例分析-創新互聯

小編給大家分享一下php文件上傳的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創新互聯公司服務項目包括碾子山網站建設、碾子山網站制作、碾子山網頁制作以及碾子山網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,碾子山網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到碾子山省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!

一、我的準備情況說明。


編輯器:sublime text3(用什么編輯器看自己愛好)
服務器構建:使用phpstudy2014構建服務器,服務器文件存儲在我自身電腦D盤的www文件中。(安裝phpstudy會自動生成www文件,安裝在哪個盤自己做主)。運行phpstudy,通過在瀏覽器地址欄輸入localhost可以訪問服務器中文件。
上傳文件的過程:瀏覽器在客戶端上傳文件,點擊提交,文件被傳送給服務器中的某個php文件進行處理,該php對該上傳文件保存到服務器。

二、創建表單

請看我的html代碼

php文件上傳的示例分析

enctype

在Form元素的語法中,EncType表明提交數據的格式 用 Enctype 屬性指定將數據回發到服務器時瀏覽器使用的編碼類型。enctype有三種:
1、application/x-www-form-urlencoded: 窗體數據被編碼為名稱/值對。這是標準的編碼格式。
2、multipart/form-data: 窗體數據被編碼為一條消息,頁上的每個控件對應消息中的一個部分。
3、 text/plain: 窗體數據以純文本形式進行編碼,其中不含任何控件或格式字符。 
補充(隨便看看就好):orm的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認為application/x-www-form-urlencoded。 當action為get時候,瀏覽器用x-www-form-urlencoded的編碼方式把form數據轉換成一個字串(name1=value1&name2=value2…),然后把這個字串append到url后面,用?分割,加載這個新的url。 當action為post時候,瀏覽器把form數據封裝到http body中,然后發送到server。 如果沒有type=file的控件,用默認的application/x-www-form-urlencoded就可以了。 但是如果有type=file的話,就要用到multipart/form-data了。瀏覽器會把整個表單以控件為單位分割,并為每個部分加上Content-Disposition(form-data或者file),Content-Type(默認為text/plain),name(控件name)等信息,并加上分割符(boundary)。

有點難理解。
總歸就記住兩句話:如果input標簽中有type=file,則enctype=multipart/form-data。如果沒有type=file一般情況下使用application/x-www-form-urlencoded。
文件上傳時都要將數據進行一定轉化才能上傳到服務器,application/x-www-form-urlencoded和multipart/form-data兩者之間的區別就在與轉化編碼方式不同。

三、創建php文件用于處理上傳的文件。

php文件上傳的示例分析

上傳文件后效果如下:


php文件上傳的示例分析

每一個上傳文件都有name、type、size、tmp_name等信息。文件上傳后,這些文件相關信息存在FILES這個數組變量。_FILES[“myfile”][“name”]相當于一個多維數組的訪問,FILES先獲取表單名稱為myfile的input上傳的文件數據,然后再訪問name、type、size、error等數據。_FILES["myfile"]["error"]用來處理文件沒有正常上傳的情況,例如超過限定上傳的文件大小。如果FILES[“myfile”][“error”]=0,表示文件正常上傳。_FILES[“myfile”][“error”]>0表示文件沒有正常上傳。
FILES[“myfile”][“error”]=1上傳文件超過服務器限定的值,比如超過服務器空間大小。_FILES[“myfile”][“error”]=2 超過瀏覽器限定上傳的值 $_FILES[“myfile”][“error”]=3文件只有部分被上傳

FILES[“myfile”][“error”]=4沒有文件本上傳。_FILES[“myfile”][“error”]還可以為5、6、7、8,這里不做深究,只需知道其大于0時就意味這文件上傳出錯即可。

上傳限制

通常情況下,服務器通常會限制服務器上傳文件的大小或者類型。我們在上面php代碼的基礎上添加對上傳文件代碼的限制。
先熟悉幾個函數用法:
explode()函數用于分割字符串,例:explode(“.”,”aaa.HTML”)就是在點的位置將這個字符串分成”aaa”和”HTML”兩個字符串,這兩個字符串按順序存儲在同一個數組中。
end()獲取數組中最后一個元素的值。
in_array()在數組中查找某個元素,看是否存在,存在返回為true,不存在返回為false。

<?php
//第一步:明確服務器規定上傳至服務器的文件類型。這里我們只允許上傳以下類型的圖片。
$allowedExts = array("gif", "jpeg", "jpg", "png");// 允許上傳的圖片后綴
//第二部:獲取上傳的文件名稱,通過explorde()函數將其分割成字符串形式的數組。
$temp = explode(".", $_FILES["myfile"]["name"]);
echo $_FILES["file"]["size"];

$extension = end($temp);   // end函數用于獲取數組中最后一個元素的值。
//第三步:列出上傳文件需要滿足的條件
if ((($_FILES["myfile"]["type"] == "image/gif")
|| ($_FILES["myfile"]["type"] == "image/jpeg")
|| ($_FILES[myfile"]["type"] == "image/jpg")
|| ($_FILES["myfile"]["type"] == "image/pjpeg")
|| ($_FILES["myfile"]["type"] == "image/x-png")
|| ($_FILES["myfile"]["type"] == "image/png"))
&& ($_FILES["myfile"]["size"] < 204800)  // 小于 200 kb
&& in_array($extension, $allowedExts))
  //in_array表示在$allowedExts數組中查找$extension這個字符串
{
  if ($_FILES["myfile"]["error"] > 0)
  {
    echo "錯誤:: " . $_FILES["myfile"]["error"] . "<br>";
    //舉個例子服務器空間不足,文件只能上傳部分就會出現錯誤。
  }
  else
  {
    echo "上傳文件名: " . $_FILES["myfile"]["name"] . "<br>";
    echo "文件類型: " . $_FILES["myfile"]["type"] . "<br>";
    echo "文件大小: " . ($_FILES["myfile"]["size"] / 1024) . " kB<br>";
    echo "文件臨時存儲的位置: " . $_FILES["myfile"]["tmp_name"] . "<br>";
  }
}
else
{
  echo "非法的文件格式";
}
?>

四、保存上傳的文件

文件上傳后,它是保存在一個臨時的位置。腳本結束時它就會消失。如果要把他永久的保存在服務器中,我們要把它保存在另一個位置。
. file_exists(“upload/” . FILES[“file”][“name”])檢查文件或目錄是否存在。.moveuploadedfile(_FILES["file"]["tmp_name"], "upload/" . $_FILES[“myfile”][“name”]);將上傳文件從臨時位置轉移到服務器空間。

<?php
//第一步:明確服務器規定上傳至服務器的文件類型。這里我們只允許上傳以下類型的圖片。
$allowedExts = array("gif", "jpeg", "jpg", "png");// 允許上傳的圖片后綴
//第二部:獲取上傳的文件名稱,通過explorde()函數將其分割成字符串形式的數組。
$temp = explode(".", $_FILES["myfile"]["name"]);
echo $_FILES["myfilefile"]["size"];
$extension = end($temp);   // end函數用于獲取數組中最后一個元素的值。
//第三步:列出上傳文件需要滿足的
if ((($_FILES["myfile"]["type"] == "image/gif")
|| ($_FILES["myfile"]["type"] == "image/jpeg")
|| ($_FILES["myfile"]["type"] == "image/jpg")
|| ($_FILES["myfile"]["type"] == "image/pjpeg")
|| ($_FILES["myfile"]["type"] == "image/x-png")
|| ($_FILES["myfile"]["type"] == "image/png"))
&& ($_FILES["myfile"]["size"] < 204800)  // 小于 200 kb
&& in_array($extension, $allowedExts))//in_array表示在$allowedExts數組中查找$extension這個字符串
{
  if ($_FILES["myfilefile"]["error"] > 0)
  {
    echo "錯誤:: " . $_FILES["myfile"]["error"] . "<br>";
  }
  else
  {
    echo "上傳文件名: " . $_FILES["myfile"]["name"] . "<br>";
    echo "文件類型: " . $_FILES["myfile"]["type"] . "<br>";
    echo "文件大小: " . ($_FILES["myfile"]["size"] / 1024) . " kB<br>";
    echo "文件臨時存儲的位置: " . $_FILES["myfile"]["tmp_name"] . "<br>";

    // 判斷當期目錄(即www文件夾中)下的 upload 目錄(自己創建,名字自?。┦欠翊嬖谠撐募?    // 如果沒有 upload 目錄,你需要創建它,upload 目錄權限為 777
    if (file_exists("upload/" . $_FILES["myfile"]["name"]))
    {
      echo $_FILES["myfile"]["name"] . " 文件已經存在。 ";
    }
    else
    {
      // 如果 upload 目錄不存在該文件則將文件上傳到 upload 目錄下
      move_uploaded_file($_FILES["myfile"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);//
      echo "文件存儲在: " . "upload/" . $_FILES["myfile"]["name"];
    }
  }
}
else
{
  echo "非法的文件格式";
}
?>

以上是“php文件上傳的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

文章標題:php文件上傳的示例分析-創新互聯
鏈接分享:http://m.newbst.com/article38/dcidsp.html

成都網站建設公司_創新互聯,為您提供網站設計軟件開發、全網營銷推廣、搜索引擎優化、企業網站制作網站排名

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設