file_get_contents
本身不支持文件上傳。它用于從指定的 URL 獲取內容,而不是從本地文件系統讀取文件。如果您想使用 PHP 處理文件上傳,可以使用 $_FILES
超全局變量。
以下是一個簡單的示例,說明如何使用 $_FILES
處理文件上傳:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['uploaded_file'])) {
$uploadDir = 'uploads/';
$uploadFile = $uploadDir . basename($_FILES['uploaded_file']['name']);
$uploadSize = $_FILES['uploaded_file']['size'];
$uploadError = $_FILES['uploaded_file']['error'];
$uploadType = $_FILES['uploaded_file']['type'];
// 檢查是否有錯誤
if ($uploadError === UPLOAD_ERR_OK) {
// 檢查文件大小是否超過限制(例如:1MB)
if ($uploadSize <= 1048576) {
// 檢查文件類型是否為允許的類型(例如:image/jpeg, image/png)
$allowedTypes = ['image/jpeg', 'image/png'];
if (in_array($uploadType, $allowedTypes)) {
// 將文件移動到上傳目錄
if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $uploadFile)) {
echo '文件上傳成功:' . $uploadFile;
} else {
echo '文件上傳失敗,請重試。';
}
} else {
echo '不允許的文件類型。';
}
} else {
echo '文件大小超過限制。';
}
} else {
echo '文件上傳出錯,錯誤代碼:' . $uploadError;
}
}
?>
<!-- HTML 表單 -->
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="uploaded_file" accept="image/jpeg, image/png">
<input type="submit" value="上傳文件">
</form>
這個示例中,我們創建了一個簡單的 HTML 表單,允許用戶選擇一個文件并上傳。當表單提交時,我們檢查是否有錯誤,檢查文件大小和類型,然后將文件移動到 uploads
目錄。如果一切正常,我們會輸出文件上傳成功的消息,否則會輸出相應的錯誤信息。