小編給大家分享一下php文件上傳代碼如何寫,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
php文件上傳代碼怎么寫
在初學php的時候,我們無法理解php文件上傳的代碼,以及上傳的邏輯,以下代碼從初學者的角度編寫,希望對大家有幫助!
需要用到的知識:
超級全局數組:$_FILES
$_FILES['myfile']['name']的值是:客戶端文件系統的文件名稱
$_FILES['myfile']['type']的值是:客戶端傳遞的文件類型
$_FILES['myfile']['size']的值是:文件的字節大小
$_FILES['myflie']['tmp_name ']的值是:文件被上傳后在服務器存儲的臨時全路徑
$_FILES['myfile']['error']的值是:文件上傳的錯誤代碼
存儲在$_FILES['myfile']['error']中的值
值為0: 表示沒有發生任何錯誤
值為1: 表示上傳文件的大小超出了約定值。文件大小的最大值在PHP配置文件中指定的,指令是:upload_max_filesize
值為2: 表示上傳文件大小超過了HTML表單隱藏域屬性的MAX_FILE_SIZE元素所指定的最大值
值為3: 表示文件只被部分上傳
值為4:表示沒有上傳任何文件
值為6: 表示找不到臨時文件夾
值為7: 表示文件寫入失敗
錯誤值對應常量
UPLOAD_ERR_OK : 對應值0
UPLOAD_ERR_INI_SIZE : 對應值1
UPLOAD_ERR_FORM_SIZE : 對應值2
UPLOAD_ERR_PARTIAL : 對應值3
UPLOAD_ERR_NO_FILE : 對應值4
UPLOAD_ERR_NO_TMP_DIR : 對應值6
UPLOAD_ERR_CANT_WRITE : 對應值7
upload.html 代碼如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>圖片上傳</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="pic"/>
<!--通過表單限制上傳文件的大小 一定要在上傳按鈕前 大小以字節為主-->
<input type="hidden" name="MAX_FILE_SIZE" value="8388608"/>
<input type="submit" name="sub" value="上傳" />
</form>
</body>
</html>upload.php 代碼如下
<?php
//var_dump($_FILES);
//exit;
//判斷是否是文件上傳
$file = $_FILES;
//第一個pic 是input 中的name值
if(is_uploaded_file($file['pic']['tmp_name']))
{
//聲明允許上傳的文件類型
$allowType = ['image/png','image/jpeg','image/gif','image/jpg'];
//正在上傳的文件的類型
$type = $file['pic']['type'];
// echo $type;
//判斷類型是否是允許的類型
if(!in_array($type,$allowType))//檢查數組中是否存在某個值,返回布爾型
{
exit('上傳類型有誤');
}
//判斷文件上傳的大小
if($file['pic']['size'] > 1024 * 1024 * 8) //以字節為主 1024*1024是1M
{
exit('上傳的文件太大');
}
//設置新文件名
$filename = date('YmdHis',strtotime('now')).rand(1000,9999);
//獲取上傳文件的后綴名
$name = $file['pic']['name'];
//得到文件名字符串
$filestr = explode('.',$name);
$ext = array_pop($filestr);
//拼接新文件名
$newfilename = $filename.'.'.$ext;
//拼接上傳文件的路徑
$path = './uploads/';
//絕對路徑
$abspath = $path.$newfilename;
if(move_uploaded_file($file['pic']['tmp_name'],$abspath))
{
echo '上傳成功';
}else{
echo '上傳失敗';
}
}看完了這篇文章,相信你對php文件上傳代碼如何寫有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。