網站、博客(部落格)、論壇(討論區)等程序,想架設一個獨立的上傳空間,方便管理主機上的圖片及檔案,在此分享一個 PHP Upload Script 上傳文件腳本,能夠輕鬆搭建自己的文件空間。這個你可以自建在PHP服務器,新增幾份文件即可。
這裡有一份 W3C School 的程式碼範本:PHP File Upload
源碼:
新建一份文件為:index.html
內容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP File Upload</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload a File:
<input type="file" name="the_file" />
<input type="submit" name="submit" value="開始上傳!" />
</form>
</body>
</html>
新建一份文件為:upload.php
內容:
<?php
$currentDirectory = getcwd();
$uploadDirectory = "/file/"; // 儲存目錄
$errors = []; // 錯誤信息
$fileExtensionsAllowed = ['jpeg','jpg','png','gif','webp','zip','rar']; // 允許上傳的檔案類型
$fileName = $_FILES['the_file']['name'];
$fileSize = $_FILES['the_file']['size'];
$fileTmpName = $_FILES['the_file']['tmp_name'];
$fileType = $_FILES['the_file']['type'];
$tmp = explode('.', $fileName);
$fileExtension = end($tmp);
$destFileName = uniqid() . '.' . $fileExtension;
$uploadPath = $currentDirectory . $uploadDirectory . $destFileName;
if (isset($_POST['submit'])) {
if (! in_array($fileExtension,$fileExtensionsAllowed)) {
$errors[] = "不支持的檔案或圖片格式";
}
if ($fileSize > 5000000) {
$errors[] = "超過上傳檔案或圖片的大小限制(5MB)";
}
if (empty($errors)) {
$didUpload = move_uploaded_file($fileTmpName, $uploadPath);
if ($didUpload) {
echo "https://www.moonlol.com/upload/file/" . basename($destFileName) . " <<--圖片連結-->>";
} else {
echo "出錯啦!請聯絡管理員";
}
} else {
foreach ($errors as $error) {
echo $error . "<<全部錯誤>>" . "\n";
}
}
}
?>
新增一個目錄為:file
把上傳的圖片及檔案文件,都存放在這份文件夾內。
完成!
相關文章:
01. 上傳圖片獲取EXIF相片資訊
01. 上傳圖片獲取EXIF相片資訊