php 實現接收客戶端上傳的圖片


今天,遇到一個服務端接收客戶端上傳圖片的需求,經過學習。我寫了個簡單的demo

以備下次學習。

首先服務器接收的發送圖片的請求一定要是post請求,而且請求一定要加上 enctype="multipart/form-data" 缺一不可

下面是例子,寫個簡單的瀏覽器端的:

<html>
<head>
<title> Upload file example. </title>
</head>
<body>
<form method="post" action="recpic.php" enctype="multipart/form-data">
     <table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
      <tr>
        <td width=55 height=20 align="center"><input type="hidden" name="MAX_FILE_SIZE" value="2000000">文件: </TD>
        <td height="16">
        <input name="file" type="file" />
        <!--這里指定了上傳后所在臨時數組的名稱-->
        <input type="submit" name="submit" value="Submit" />
        </td>
      </tr>
     </table>
     </form>
</body>
</html>
<?php
/**
 * 接收上傳的圖片
 * 
 * ------------
 * 200 ok
 * 401 Error method
 * 500 Internal error
 * ------------
 */
require_once("../inc/connect_db.php");
require_once("../response.php");
header('Access-Control-Allow-Origin: *');   // 解決前段javascript跨域請求

//print_r($_FILES);

$filename = $_FILES['file']['name'];
$tmp_name = $_FILES['file']['tmp_name'];

//將服務器上的臨時文件移動到指定目錄下

//使用該方法move_uploaded_file($tmp_name , $destination)

move_uploaded_file($tmp_name , "../files/".$filename);

echo $filename;
exit();

上文有注釋不贅述,這里還搜集了一些關於上傳文件$_FILES()的重要方法:

$_FILES['myFile']['name'] 顯示客戶端文件的原名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為字節。
$_FILES['myFile']['tmp_name'] 儲存的臨時文件名,一般是系統默認。
$_FILES['myFile']['error'] 該文件上傳相關的錯誤代碼。以下為不同代碼代表的意思:
0; 文件上傳成功。
1; 超過了文件大小php.ini中即系統設定的大小。
2; 超過了文件大小MAX_FILE_SIZE 選項指定的值。
3; 文件只有部分被上傳。
4; 沒有文件被上傳。
5; 上傳文件大小為0。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM