小编给大家分享一下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文件上传代码如何写有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。