PHP文件上傳

文件上傳

 

經過<form>表單實現,將文件上傳到一個臨時目錄,上傳的過程不須要咱們管,只需將文件移動到咱們指望的目錄便可。

 

1. 修改PHP配置文件php

file_uploads               服務器上的PHP腳本是否能夠接受HTTP文件上傳html

 

memory_limit            設置腳本能夠分配的最大內存量,防止失控腳本獨佔服務器內存數組

 

upload_max_filesize      限制PHP處理上傳文件的最大值,此值必須小於post_max_size值服務器

 

 post_max_size             限制經過POST方法能夠接受的信息最大量函數

 

upload_tmp_dir              上傳文件存放的臨時路徑,能夠是絕對路徑。這個目錄對於擁有此服務器進程用戶必須是可寫的。post

注意:修改完配置文件後從新啓動服務器。spa

 

2. $_FILES多維數組,用於存儲各類與上傳有關的信息code

$_FILES[‘file’][‘name’]         客戶端上傳的文件原名稱,含擴展名orm

$_FILES[‘file’][‘size’]          已上傳文件的大小,單位爲字節htm

$_FILES[‘file][‘tmp_name’]        文件上傳後,在服務器端存儲的臨時文件名

$_FILES[‘file][‘error’]          文件上傳時產生的錯誤

                                     0:文件上傳成功

                                     1:上傳文件的大小超出了在PHP配置文件中upload_max_filesize選項限制的值

                                     2:上傳文件大小超出了HTML表單中MAX_FILE_SIZE選項指定的值

                                     3:文件只被部分上傳

                                     4:沒有上傳任何文件

$_FILES[‘file’][‘type’]        上傳文件的類型,每種MIME類型由‘/’分隔主類型和子類型組成

 

 

3. PHP文件上傳處理函數

is_uploaded_file()      判斷指定的文件是否經過HTTP POST上傳的

move_uploaded_file()    文件上傳後先存儲於服務器的臨時目錄中,使用該函數移動文件位置

 

 

實驗:

 1 <?php
 2     header('Content-type:text/html;charset=utf-8');
 3     //判斷客戶端是否有提交動做
 4     if(isset($_POST['submit'])){
 5         //判斷文件是否經過HTTP POST上傳的
 6         if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
 7             //用於服務器端顯示客戶端上傳文件的後綴名.返回值是一個數組
 8             $arr=pathinfo($_FILES['myfile']['name']);
 9             //以年 月 日的格式命名客戶端上傳的文件名並隨機產生一個數,避免名字相同
10             $newName=date('YmdGis').rand(1000,99999);
11             if(move_uploaded_file($_FILES['myfile']['tmp_name'],"C:/123/{$newName}.{$arr['extension']}")){
12                 echo '成功';
13             }else{
14                 echo '失敗';
15             }
16         }else{
17             exit('....');
18         }
19     }
20     var_dump($_FILES);
21 ?>
22 <DOCTYPE html>
23 <html lang="en">
24 <head>
25 <meta charset="utf-8">
26 <title>文件上傳</title>
27 </head>
28 <body>
29     <form method="post" action="" enctype="multipart/form-data">
30     <input type="file" name="myfile"/>
31     <input type="submit" name="submit" value="開始上傳"/>
32     </form>
33 </body>
34 </html>

    

 

相關文章
相關標籤/搜索