layui+php上传文件 的思路讲解
程序员文章站
2022-07-13 11:03:55
...
代码编辑软件看个人习惯,首先我们先写前端部分代码
1.laiyui官网:https://www.layui.com/ 下载代码包
2.把下载好的代码包放入新建好的的项目中
3.引用layui的css跟js文件
<!-- 引入layui样式 -->
<link rel="stylesheet" href="layui/css/layui.css">
<!-- 引入layui js -->
<script src="layui/layui.js" type="text/javascript" charset="utf-8"></script>
<!-- 引入jquery -->
4.查看layui上传文件的官方文档:https://www.layui.com/doc/modules/upload.html
5.直接把文档中的代码复制粘贴到body中
6.点击按钮便可以选择文件
接下来我们写上传文件的PHP
1.首先安装一个phpStudy,
2.找到安装目录中的PHPTutorial目录下的WWW目录
3.新建一个up.php然后用编辑软件打开
1).首先在PHP文件<?php...?>声明是PHP文件
2).在文件顶部加入下面代码。具体作用我已经注释到代码后面了
<?php
header("Access-Control-Allow-Origin: *"); //解决跨域
header('Access-Control-Allow-Methods:post');// 响应类型
date_default_timezone_set('PRC');//获取当前时间
3).获取上传文件目录
$month = date('Ym', time());//获取年月
define('BASE_PATH', str_replace('\\', '/', realpath(dirname(__FILE__).'/'))."/");
$dir = BASE_PATH."upload/".$month."/";//判断是否有对应的文件
4).然年后初始化一个数组作为返回数组
$arr = array(
'code' => 0,//返回状态
'msg'=> '',//提示消息
'data' =>array(//文件链接
'src' => $dir . $_FILES["file"]["name"]
),
);
5).文件处理
$file_info = $_FILES['file'];//前端传过来的文件
$file_error = $file_info['error'];
if (!is_dir($dir)) {//判断目录是否存在
mkdir($dir, 0777, true);//如果目录不存在则创建目录
};
$file = $dir.$_FILES["file"]["name"];//上传文件的名字
if (!file_exists($file)) {//判断文件中是否有相同的文件
if ($file_error == 0) {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $dir. $_FILES["file"]["name"])) {
$arr['msg'] ="上传成功";
} else {
$arr['msg'] = "上传失败";
}
} else {
switch ($file_error) {
case 1:
$arr['msg'] ='上传文件超过了PHP配置文件中upload_max_filesize选项的值';
break;
case 2:
$arr['msg'] ='超过了表单max_file_size限制的大小';
break;
case 3:
$arr['msg'] ='文件部分被上传';
break;
case 4:
$arr['msg'] ='没有选择上传文件';
break;
case 6:
$arr['msg'] ='没有找到临时文件';
break;
case 7:
case 8:
$arr['msg'] = '系统错误';
break;
}
}
} else {
$arr['code'] ="1";
$arr['msg'] = "当前目录中,文件".$file."已存在";
}
echo json_encode($arr);//将遍历好的数组反给前端
PHP代码大概就这样,然后我们将写好的接口放到前端的url中
按照我跟你们讲的接口为http://localhost/up.php
大概是路就这样,要没看明白的话这是源代码链接:https://blog.csdn.net/qq_41241504/article/details/103303384
可以自己研究一下。
各位大佬要是有什么好的思路欢迎评论到下面,我会积极采纳的
上一篇: 基于springMvc的文件(图片)上传
下一篇: 做一个简单的太阳系(二)