激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - 解讀PHP中上傳文件的處理問(wèn)題

解讀PHP中上傳文件的處理問(wèn)題

2021-01-24 15:51my筆觸 PHP教程

這篇文章主要介紹了解讀PHP中上傳文件的處理問(wèn)題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

我們?cè)跒g覽器中編輯自己的信息,會(huì)遇到上傳頭像;在文庫(kù)中,我們會(huì)上傳文檔......到處存在“上傳”這個(gè)詞。

  php是最好的語(yǔ)言(其他語(yǔ)言的程序猿們不要打我...)。php在處理交互方面有天然的優(yōu)勢(shì),自然有強(qiáng)大的函數(shù)來(lái)處理上傳文件。

  和提交一般的數(shù)據(jù)一樣,上傳文件也需要表單。下面建立一個(gè)特殊的表單來(lái)上傳文件。

?
1
2
3
4
5
6
7
<form enctype="multipart/form-data" action="upload_file.php" name="upload_form" method="post">
<!--max_file_size必須在所有的input之前,以后要是想用上傳表單,可以在form之后就寫(xiě)隱藏的input-->
<input type="hidden" name="max_file_size" value=""/>
上傳的文件:
<input type="file" name="userfile"/>
<input type="submit" name="sub_button" value="上傳文件的提交按鈕"/>
</form>

  ok,我們分析一下這個(gè)代碼段。

  以上的enctype規(guī)定了數(shù)據(jù)在發(fā)送給服務(wù)器的時(shí)候采用什么編碼格式。它有三個(gè)值:

解讀PHP中上傳文件的處理問(wèn)題

  max_file_size隱藏字段(單位為字節(jié))必須放在文件輸入字段之前,其值為文件的最大尺寸。這是對(duì)瀏覽器的一個(gè)建議,php也會(huì)檢查此項(xiàng)。不過(guò)在瀏覽器端可以繞過(guò)這個(gè)障礙,因此不要指望用它來(lái)阻擋大文件。但是文件最大值受php.ini中的post_max_size= (number)m的限制。但是最好還是加上這個(gè)項(xiàng)目,它可以避免用戶(hù)在花時(shí)間等待上傳大文件之后才發(fā)現(xiàn)大文件上傳失敗的麻煩。

  在用戶(hù)提交文件表單之后,服務(wù)器端就可以接受數(shù)據(jù)了。php中有全局變量$_files來(lái)處理文件,假設(shè)上傳字段名稱(chēng)為userfile(可以在字段中隨意更改)。

  $_files['userfile']['name'] 客戶(hù)端文件的原名稱(chēng)。
  $_files['userfile']['type'] 文件的mime類(lèi)型,這個(gè)在php端并不檢查,因此這個(gè)值還不一定有。
  $_files['userfile']['size'] 上傳的文件的大小(單位字節(jié))。
        $_files['userfile']['tmp_name'] 文件上傳后在服務(wù)器端存儲(chǔ)的臨時(shí)文件名。
  $_files['userfile']['error'] 和該文件上傳相關(guān)的錯(cuò)誤代碼。如果上傳成功,值為0.

  文件在上傳后,默認(rèn)存儲(chǔ)到服務(wù)器默認(rèn)臨時(shí)目錄中,在php.ini中的upload_tmp_dir設(shè)置為其他路徑。

  在這里還得說(shuō)說(shuō)一個(gè)move_uploaded_file()函數(shù):

解讀PHP中上傳文件的處理問(wèn)題

  這個(gè)函數(shù)檢查并確保由 file 指定的文件是合法的上傳文件(即通過(guò) php 的 http post 上傳機(jī)制所上傳的)。如果文件合法,則將其移動(dòng)為由 newloc 指定的文件。

  如果 file 不是合法的上傳文件,不會(huì)出現(xiàn)任何操作,move_uploaded_file() 將返回 false。

  如果 file 是合法的上傳文件,但出于某些原因無(wú)法移動(dòng),不會(huì)出現(xiàn)任何操作,move_uploaded_file() 將返回 false,此外還會(huì)發(fā)出一條警告。

  這種檢查顯得格外重要,如果上傳的文件有可能會(huì)造成對(duì)用戶(hù)或本系統(tǒng)的其他用戶(hù)顯示其內(nèi)容的話(huà)。

  下面是一個(gè)php上傳文件實(shí)例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<b>上傳文件處理</b>
<?php
if (isset($_files['userfile'])) {
$uploaddir = 'upload/';
$uploadfile = $uploaddir . basename($_files['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_files['userfile']['tmp_name'], $uploadfile)) {
echo '上傳文件成功'.'<br>';
} else {
echo '上傳文件失敗'.'<br>';
}
echo '這是上傳文件的一些信息:' . '<br>';
print_r($_files);
echo '<pre>';
die();
}
?>
<b>上傳表單</b>
<!--表單中的enctype屬,必須和以下定義保持一致-->
<form enctype="multipart/form-data" action="upload_file.php" name="upload_form" method="post">
<!--max_file_size必須在所有的input之前,以后要是想用上傳表單,可以在form之后就寫(xiě)隱藏的input-->
<input type="hidden" name="max_file_size" value=""/>
上傳的文件:
<input type="file" name="userfile"/>
<hr/>
<input type="submit" name="sub_button" value="上傳文件的提交按鈕"/>
</form>

解讀PHP中上傳文件的處理問(wèn)題

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本不卡一二三区 | 欧美成人理论片乱 | 大尺度福利视频 | 91久久精品一区二区 | 91看片免费看 | 久草亚洲视频 | 久久久免费电影 | 午夜精品毛片 | a黄色网 | 国产亚洲综合精品 | 午夜天堂在线视频 | 999精品久久久 | 亚洲国产午夜精品 | 1314av| 久久爽久久爽久久av东京爽 | 亚洲特黄| 91av日韩| 欧美自拍 | 极品销魂一区二区三区 | 久久人操 | 免费国产在线视频 | 国产精品爱久久久久久久 | 男女无套免费视频 | 成人片在线播放 | 欧美激情第一区 | 国产无区一区二区三麻豆 | 粉嫩蜜桃麻豆免费大片 | 国产精品国产三级国产在线观看 | hdbbwsexvideo | 亚洲精品久久久久www | 国产大片免费看 | 在线a毛片免费视频观看 | 国产成人精品一区二区视频免费 | 久久3p视频 | 激情视频免费看 | 毛片免费在线观看视频 | 美女毛片在线观看 | 欧美黄色一级片在线观看 | 久久亚洲成人网 | 国产91一区| 欧美精品一区二区三区在线 |