在您可以使用PHP來管理您的上傳,你首先需要建設作為用戶界面的HTML表單上傳的文件,有一個在下面的例子外觀和保存一個編輯HTML代碼,代碼如下:
- <html>
- <body>
- <form enctype="multipart/form-data" action="upload.php" method="post">
- <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
- Choose a file to upload: <input name="uploaded_file" type="file" />
- <input type="submit" value="Upload" />
- </form>
- </body>
- </html>
有一些規則需要建設時遵循HTML表單,首先,請確保該窗體使用POST方法,第二,形式需要以下屬性:字符編碼=“多重/表單數據”,它指定的內容類型時使用的信息提交給服務器,如果沒有這些要求,您的文件上傳不了.
另一個需要注意的是隱藏的表單字段名為MAX_FILE_SIZE設置的值,某些Web瀏覽器實際上反映了這個領域,也不會允許用戶上載文件超過這個數字(字節)更大,您應該將此值設置為配合最大上傳大小,在php.ini文件中設置.
這是一套與中 upload_max_filesize,默認值是2MB的,但它仍然不能保證你的腳本將不會轉交了尺寸較大的文件。危險的是,攻擊者將嘗試向您發送一個請求幾個大文件,并填寫了文件系統,也就是PHP存儲解碼文件,設置在php.ini的post_max_size的指令文件的最大尺寸,你要(必須大于中upload_max_filesize),默認值為10MB的,此指令控制的所有要求,在一個允許的POST數據最大大小.
另外,還要確保在你的php.ini文件file_uploads設置為On.
至少,有一個在輸入標記屬性看:類型=“文件”,它是用來指定為文件選擇控制輸入元素,這提供了一個文件的URI的地方,則需要鍵入一個“瀏覽”按鈕,可作為替代的URI輸入使用.
在用戶進入一個文件的URI,并點擊提交按鈕的文件的副本將被發送到服務器和用戶將被重定向到upload.php。此PHP文件將處理表單數據。
返回頁首處理表單數據(PHP代碼),當文件被上傳和PHP創建了一個文件的臨時副本,并建立了超全局變量$ _FILES數組,包含有關文件的信息,對于每個文件,有5個數據,我們已上傳字段命名為'uploaded_file',所以會存在以下數據:
變量$ _FILES [“uploaded_file”] [“name”]從用戶的機器上載的文件的原名稱
變量$ _FILES [“uploaded_file”] [“type”]的上傳文件的MIME類型(如果瀏覽器提供的類型)
變量$ _FILES [“uploaded_file”] [“size”]的以字節為單位上傳的文件大小
變量$ _FILES [“uploaded_file”] [“tmp_name”],在該文件暫時存儲在服務器上的位置
變量$ _FILES [“uploaded_file”] [“error”]錯誤代碼從文件上傳結果.
下面的例子接受一個上傳的文件并保存在上載目錄中。它允許根據350Kb上傳只有JPEG圖像,該代碼本身,是相當清楚的,但我們會作出一些解釋,有一個例子在外觀和保存此為upload.php PHP代碼.
- <?php
- //Сheck that we have a file
- if((!emptyempty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error']
- == 0)) {
- //Check if the file is JPEG image and it's size is less than 350Kb
- $filename = basename($_FILES['uploaded_file']['name']);
- $ext = substr($filename, strrpos($filename, '.') + 1);
- if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg")
- &&
- ($_FILES["uploaded_file"]["size"] < 350000)) {
- //Determine the path to which we want to save this file
- $newname = dirname(__FILE__).'/upload/'.$filename;
- //Check if the file with the same name is already exists on the
- server
- if (!file_exists($newname)) {
- //Attempt to move the uploaded file to it's new place
- if ((move_uploaded_file($_FILES['uploaded_file']
- ['tmp_name'],$newname))) {
- echo "It's done! The file has been saved as: ".$newname;
- } else {
- echo "Error: A problem occurred during file upload!";
- }//開源代碼Vevb.com
- } else {
- echo "Error: File ".$_FILES["uploaded_file"]["name"]." already
- exists";
- }
- } else {
- echo "Error: Only .jpg images under 350Kb are accepted for upload";
- }
- } else {
- echo "Error: No file uploaded";
- }
- ?>
在此之前的上載您需要的文件,以確定文件是否真的上傳任何東西,之后我們檢查上傳的文件,JPEG圖像,其大小小于350Kb的,接下來,我們確定的道路,這是我們要保存此文件,并檢查是否已經存在一個服務器上的這些文件的名稱,當所有檢查通過,我們將文件復制到一個永久的位置使用move_upload_file()函數,此功能也證實該文件你要過程,是一個合法的文件從用戶上傳結果,如果該文件上傳成功,那么相應的消息將出現.
注意:要確保PHP已經允許讀取和寫入臨時文件中保存的位置是您要復制文件的目錄,這個例子其實很簡單,它的提出是為了演示如何使用PHP上傳文件,例如,您可以添加新的條件,并允許上傳GIF和PNG圖像,或任何文件,您需要其他種類,如果您是本教程使用PHP不熟悉可能是一個很好的起點.
新聞熱點
疑難解答