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 對應值對應值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>
<?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相關知識,請造訪
PHP中文網#以上是php檔案上傳程式碼怎麼寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!