序言:如今各种框架层出不穷,如thinkphp、laravel、yii等,对于功能的封装也是各显其能,以至于很多开发者离开了框架之后就不会开发了,今天我以实际的例子介绍最基本的图片上传功能,希望对一些朋友有所帮助。
thinkphp5的上传功能
表单代码如下:
<form action=/index/index/upload enctype=multipart/form-data method=post>
<input type=file name=image /> <br>
<input type=submit value=上传 />
</form>
控制器中添加如下的代码:
public function upload(){
// 获取表单上传文件 例如上传了.jpg
$file = request()->file(image);
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->move(ROOT_PATH . public . DS . uploads);
if($info){
// 成功上传后 获取上传信息
// 输出 jpg
echo $info->getExtension();
// 输出 /42a79759f284b767dfcb2a0197904287.jpg
echo $info->getSaveName();
// 输出 42a79759f284b767dfcb2a0197904287.jpg
echo $info->getFilename();
}else{
// 上传失败获取错误信息
echo $file->getError();
}
}
}
文档地址:https://www.kancloud.cn/manual/thinkphp5/
PHP的原生上传代码
注意:文件上传一定要定义 enctype=multipart/form-data
<form action=/index/index/upload enctype=multipart/form-data method=post>
<input type=file name=image /> <br>
<input type=submit value=上传 />
</form>
<?php
// 允许上传的图片后缀
$allowedExts = array(gif, jpeg, jpg, png);
$temp = explode(., $_FILES[file][name]);
echo $_FILES[file][size];
$extension = end($temp); // 获取文件后缀名
if ((($_FILES[file][type] == image/gif)
|| ($_FILES[file][type] == image/jpeg)
|| ($_FILES[file][type] == image/jpg)
|| ($_FILES[file][type] == image/pjpeg)
|| ($_FILES[file][type] == image/x-png)
|| ($_FILES[file][type] == image/png))
&& ($_FILES[file][size] < ) // 小于 kb
&& in_array($extension, $allowedExts))
{
if ($_FILES[file][error] > 0)
{
echo 错误:: . $_FILES[file][error] . <br>;
}
else
{
echo 上传文件名: . $_FILES[file][name] . <br>;
echo 文件类型: . $_FILES[file][type] . <br>;
echo 文件大小: . ($_FILES[file][size] / ) . kB<br>;
echo 文件临时存储的位置: . $_FILES[file][tmp_name] . <br>;
// 判断当前目录下的 upload 目录是否存在该文件
// 如果没有 upload 目录,你需要创建它,upload 目录权限为
if (file_exists(upload/ . $_FILES[file][name]))
{
echo $_FILES[file][name] . 文件已经存在。 ;
}
else
{
// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
move_uploaded_file($_FILES[file][tmp_name], upload/ . $_FILES[file][name]);
echo 文件存储在: . upload/ . $_FILES[file][name];
}
}
}
else
{
echo 非法的文件格式;
}
?>
我是小程序软件开发,每天分享开发过程中遇到的知识点,如果对你有帮助的话,帮忙点个赞再走呗,非常感谢。
《完》
往期文章分享: