欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php 上傳失敗

陳宇航1年前4瀏覽0評論
在網站開發過程中,上傳功能是必不可少的一種操作。然而,很多人在使用php上傳文件時,常常會遇到失敗的情況,這對于開發人員來說是一大困擾。本文就來分析php上傳失敗的幾種可能原因,并結合代碼進行詳細講解。
1. 文件超過上傳大小限制
在php中,上傳文件的大小限制是由php.ini文件中的upload_max_filesize和post_max_size設置的。如果上傳的文件大小超過了這個限制,就會上傳失敗。代碼如下:
//獲取設置的大小限制
$max_size = ini_get("upload_max_filesize");
$max_post = ini_get("post_max_size");
//轉換成bytes
$max_size = return_bytes($max_size);
$max_post = return_bytes($max_post);
//比較上傳文件大小和限制大小
if(($_FILES['file']['size'] > $max_size) || ($_FILES['file']['size'] > $max_post)) {
echo "上傳文件過大!";
}
//文件大小轉換成bytes
function return_bytes($size) {
$unit = substr($size, -1);
$size = substr($size, 0, -1);
if ($unit == 'K') {
return $size * 1024;
} elseif ($unit == 'M') {
return $size * 1024 * 1024;
} elseif ($unit == 'G') {
return $size * 1024 * 1024 * 1024;
} else {
return $size;
}
}

2. 目錄沒有寫權限
如果你上傳文件的目錄沒有添加寫權限,就會導致上傳失敗的情況。代碼如下:
//上傳文件目錄和文件名
$upload_dir = "/upload/";
$target_file = $upload_dir . basename($_FILES["file"]["name"]);
//檢查上傳目錄是否存在,不存在則創建目錄
if (!file_exists($upload_dir)) {
mkdir($upload_dir, 0777, true);
}
//檢查目錄是否有寫權限
if (!is_writable($upload_dir)) {
echo "上傳目錄沒有寫權限!";
}
//移動文件到上傳目錄中
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "文件上傳成功!";
} 
else {
echo "文件上傳失敗!";
}

3. 表單enctype屬性設置錯誤
在php中,必須設置表單的enctype屬性為multipart/form-data才能進行文件的上傳操作。如果你的表單沒有添加這個屬性或者設置了其他的enctype屬性,就會導致上傳失敗。代碼如下:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file">
<input type="submit" name="submit" value="上傳">
</form>

4. 上傳文件類型錯誤
在php中,上傳文件的類型必須是允許的文件類型才可以上傳成功。如果上傳的文件類型不在允許的文件類型列表中,就會上傳失敗。代碼如下:
//允許上傳的文件類型
$allow_types = array('jpg', 'jpeg', 'gif', 'png');
//獲取文件類型
$filetype = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
//檢查是否是允許上傳的文件類型
if(!in_array($filetype, $allow_types)) {
echo "上傳文件類型錯誤!";
}

綜上所述,php上傳失敗有很多種原因,我們必須弄清楚這些原因,才能更好地進行上傳文件操作。希望本文能夠對大家有所幫助。