一直想要寫支API讓行動裝置能上傳影像到伺服器,首先我就來寫PHP如何處理上傳影像,再來包裝Restful API。
![[XAMPP][PHP] 處理上傳檔案.jpg](https://cg2010studio.files.wordpress.com/2016/08/xamppphp-e89995e79086e4b88ae582b3e6aa94e6a188.jpg?w=540)
成功上傳後馬上就能看到影像!(看我們楊大多認真啊XD~)
網路上有教學總是能讓人快速上手,如此也能讓人馬上得到成就感!
![[XAMPP][PHP] 處理上傳檔案2](https://cg2010studio.files.wordpress.com/2016/08/xamppphp-e89995e79086e4b88ae582b3e6aa94e6a1882.png?w=540)
本機端開啟網頁
<!DOCTYPE html> <html> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> </body> </html>
接著來寫上傳時,會觸發的PHP,要判斷檔案是否已存在、檔案類型、檔案大小是否符合我們所預期。
<?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // Check file size if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } ?>
使用另一台電腦或手機,開啟連結,點擊選擇檔案,然後上傳,成功後馬上能在資料夾中看到影像喔!
![[XAMPP][PHP] 處理上傳檔案3](https://cg2010studio.files.wordpress.com/2016/08/xamppphp-e89995e79086e4b88ae582b3e6aa94e6a1883.png?w=540)
伺服器中的資料夾
隨意留個言吧:)~