# 文件上传
`YznCMS`开发框架支持将文件、图片、视频、压缩包等文件快速的上传至本地服务器或云存储。
### 上传示例
```
<div class="layui-form-item">
<label class="layui-form-label layui-form-item-required">图片</label>
<div class="layui-input-block">
<div class="layui-col-xs4">
<input type="text" name="row[pic]" id="c-pic" value="" class="layui-input">
</div>
<button type="button" class="layui-btn faupload" id="faupload-pic" data-multiple="false" data-input-id="c-pic" data-preview-id="p-pic" data-type="image"><i class="layui-icon layui-icon-upload"></i> 上传</button><button type="button" class="layui-btn fachoose" data-multiple="false" data-mimetype="image" data-input-id="c-pic" id="fachoose-c-pic"><i class="iconfont icon-other"></i> 选择</button>
<ul class="layui-row list-inline plupload-preview" id="p-pic"></ul>
</div>
</div>
```
以上代码会生成一个input文本框、一个上传按钮、一个选择按钮和一个预览的DIV
| 类型 | 说明 |
| --- | --- |
| input文本框 | 用于回传上传后返回的图片链接,文本框`id`属性是必填,这里的`id`是`c-pic` |
| 上传按钮 | 用于点击后上传文件,参数请参考下方的上传按钮属性介绍|
| 选择按钮 | 用于点击后选择已经上传的文件,参数请参考下方的选择按钮属性介绍 |
| 预览区域 | 用于预览上传或选择文件后的预览。`id`属性是必选的,这里的`id`是`p-pic` |
## 大附件上传,方式一(修改配置)
要上传100MB的附件,你需要同时配置PHP和Nginx。
首先,配置PHP的php.ini文件, 找到以下配置项,并进行相应的修改:
* `upload_max_filesize`:设置为100M或更大的值,例如:`upload_max_filesize = 100M`
* `post_max_size`:设置为比`upload_max_filesize`更大的值,例如:`post_max_size = 105M`
* `max_execution_time`:设置为较大的值,以确保上传过程不会超时,例如:`max_execution_time = 300`
接下来,配置Nginx的nginx.conf文件,找到server块,并添加以下配置项:`client_max_body_size 100M;`
## 大附件上传,方式二(分片上传)
如果需要启用分片上传,必须客户端和服务端同时开启。首先找到`application/config/app.php`,修改其中的`chunking`值为`true`。
其次给按钮添加`data-chunking=true`属性即可,如果提示文件过大,可以再添加`data-maxsize="1024M"`来控制允许上传的文件大小。
### 按钮属性
上传按钮支持属性
| 属性 | 示例值 | 说明 |
| --- | --- | --- |
| data-multipart | {"key1":"value1"} | 用于上传时附加额外的参数信息 |
| data-input-id | c-pic | 用于填充返回URL地址的设文本框 |
| data-mimetype | image/gif,image/jpeg,image/png,image/jpg,image/bmp | 用于过滤允许上传的文件类型,支持mimetype或文件后缀名 |
| data-multiple | false | 是否支持多图或多文件模式 |
| data-preview-id | p-pic | 用于预览返回URL地址的DIV |
| data-maxsize | 10M | 用于限制最大可上传的文件大小 |
| data-maxcount | 1 | 用于限制最大可上传的文件数量 |
| data-timeout | 60000 | 用于设定上传超时时长,`60000`表示`60`秒,默认为`30000`,表示`30`秒 |
| data-chunking | true | 是否启用分片上传 |
| data-chunk-size | 2097152 | 分片单片文件大小 |
| data-resize-quality | 0.8 | 默认不压缩,只有当设置`resizeWidth`或`resizeHeight`时才压缩,设置上传图片的压缩品质 |
| data-resize-width | 1024 | 默认为`null`不剪裁 |
| data-resize-height | 768 | 默认为`null`不剪裁 |
选择按钮支持属性
| 属性 | 示例值 | 说明 |
| --- | --- | --- |
| data-input-id | c-pic | 用于填充返回URL地址的设文本框 |
| data-mimetype | image/gif,image/jpeg,image/png,image/jpg,image/bmp | 用于过滤允许上传的文件类型,支持mimetype或文件后缀名 |
| data-multiple | false | 是否支持多图或多文件模式 |
| data-preview-id | p-pic | 用于预览返回URL地址的DIV |
- 序言
- 使用条款
- 安装
- 环境搭建
- 目录结构
- 钩子和行为
- 表单生成
- 数据限制
- 命令行
- 一键生成CRUD
- 一键生成菜单
- 一键安装
- 系统配置
- 常规字段
- 特殊字段1:下拉框(高级)字段
- 特殊字段2:自定义字段
- 特殊字段3:自定义多图片
- 系统函数/类
- 函数说明
- cache - 缓存管理
- thumb - 获取缩略图
- str_cut - 字符截取
- 邮箱/短信
- 插件使用说明
- cms内容管理【cms】
- 变量/常量
- 函数
- getCategory - 栏目获取
- catpos - 面包屑
- seo - 生成SEO
- buildCatUrl - 生成栏目URL
- buildContentUrl - 创建内容链接
- 标签
- 公共参数
- 栏目标签
- 列表标签
- 上一页标签
- 下一页标签
- Tags标签
- 万能标签
- 原生标签
- 搜索页
- 筛选页
- 内容详情页
- 模板
- 技巧/问题
- 将CMS路由设置更简洁
- 外链和单页如何增加列表类型的子栏目
- 如何合理设置SEO
- 实现电脑和手机模板分离
- 敏感词检测
- 栏目授权不全
- 内容页分页
- 分页伪静态
- tag标签不支持特殊字符
- 部分虚拟主机tags页面报错
- 循环表格
- 二级目录搭建知识点
- 阅读收费
- 会员插件【member】
- 介绍
- 自定义表单【formguide】
- 调用方式
- 模板
- 支付插件【pay】
- 支付宝
- 微信
- 常见问题
- 接口文档【apidoc】
- 简介
- 配置
- 使用
- 万能采集【collection】
- 采集列表规则
- 采集内容规则
- 关于图片
- 案例一:采集yzncms论坛
- cms小程序【wxcms】(重构已下架)
- 前端
- H5设计【diywap】
- 返回顶部【returntop】
- 通用数据导出【dataoutput】
- 多通道短信【easysms】
- 塞邮邮箱【saiyouems】
- 第三方登录【synclogin】
- 中文分词【getwords】
- QQ客服【kefu】
- 地图位置【address】
- 智能人机验证【vaptcha】
- 行为验证码【ajcaptcha】
- 数据转换【v9toyzn】
- 数据转换【dedetoyzn】
- 百度收录查询【baidurecord】
- 蜘蛛访问统计【spider】
- editormd编辑器【editormd】
- 敏感词检测【sensitive】
- 邮箱发送【phpmailer】
- 内容收藏【favorite】
- 队列插件【queue】
- 七牛云【qiniu】
- 阿里云oss【alioss】
- 腾讯云【cos】
- 迅搜全文检索【xunsearch】
- 评论插件【comments】
- 网页即时通讯【webim】(重构已下架)
- 生成js
- window使用
- linux使用(推荐)
- 常见问题
- 友情链接【links】
- 考试插件【kaoshi】(暂停)
- 会员邀请【invite】
- 快递查询插件【expressquery】
- 礼品卡提货系统【pickup】
- 地区插件【area】
- IP归属地查询【ipregion】
- 百度统计插件【baidutongji】
- 消息通知【notice】
- 微信管理【wechat】
- 在线投票系统【vote】
- 前端&组件
- 后台前端框架
- 文件上传
- table数据表格
- auth权限验证
- 动态显示(Favisible)
- 动态下拉(SelectPage)
- 键值组件(Fieldlist)
- uniapp教程
- 常见问题
- YznCMS开发遇到错误怎么办?(新手必看)
- 关闭调试模式
- 伪静态(URL重写)
- 虚拟主机不支持绑定public的方法
- 各类虚拟主机伪静态使用注意事项
- 百度编辑器多图片上传被压缩
- 部分虚拟主机隐藏index.php有问题
- 后台路径admin.php修改
- 后台密码忘记重置方法
- 宝塔面板一键部署
- 后台登录时验证码不显示
- 小程序图片不显示
- 如何自定义404页面显示模板
- 管理员登录时提示请于1天后再尝试登录
- composer
- composer简介
- 内置composer
- 各大厂商镜像地址
- 常用命令
- 拓展知识
- 助手类
- thinkphp维护
- 插件开发
- 目录结构
- 数据库
- 测试数据
- 插件信息
- 插件配置
- 核心文件
- 插件函数
- 🔥开发者入驻
- 申请入驻
- 建立私库
- 插件入驻流程
- 模板入驻流程
- 安全建议
- 更新日记和补丁包