ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
FastAdmin的上传功能非常强大,我们只需要简单的配置即可支持单图或多图上传。 ~~~ <div class="form-group"> <label for="c-avatar" class="control-label col-xs-12 col-sm-2">头像:</label> <div class="col-xs-12 col-sm-8"> <div class="input-group"> <input id="c-avatar" data-rule="" class="form-control" size="50" name="row[avatar]" type="text" value="{$row.avatar}"> <div class="input-group-addon no-border no-padding"> <span><button type="button" id="plupload-avatar" class="btn btn-danger plupload" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> 上传</button></span> <span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span> </div> <span class="msg-box n-right" for="c-avatar"></span> </div> <ul class="row list-inline plupload-preview" id="p-avatar"></ul> </div> </div> ~~~ 我们可以看到这里配置了一个文本框、一个上传按钮、一个选择按钮和一个预览的DIV | 类型 | 说明 | | --- | --- | | 文本框 | 主要用于接收上传后返回的图片链接,文本框id属性是必选的,这里的id是`c-avatar` | | 上传按钮 | 主要用于点击后上传文件,有几个属性非常重要,请参考下方的上传按钮属性介绍 | | 选择按钮 | 主要用于点击后选择已经上传的文件,有几个属性非常重要,请参考下方的选择按钮属性介绍 | | 预览区域 | 主要用于预览上传或选择文件后的预览。id属性是改造的,这里的id是`p-avatar` | 上传按钮支持属性 | 属性 | 示例值 | 说明 | | --- | --- | --- | | data-url | ajax/upload | 用于配置上传文件接收的地址 | | data-multipart | {"key1":"value1"} | 用于上传时附加额外的参数信息 | | data-input-id | c-avatar | 用于填充返回URL地址的设文本框 | | data-mimetype | image/gif,image/jpeg,image/png,image/jpg,image/bmp | 用于过滤允许上传的文件类型,支持mimetype或文件后缀名 | | data-multiple | false | 是否支持多图或多文件模式 | | data-preview-id | p-avatar | 用于预览返回URL地址的DIV | | data-maxsize | 10M | 用于限制最大可上传的文件大小 | 选择按钮支持属性 | 属性 | 示例值 | 说明 | | --- | --- | --- | | data-input-id | c-avatar | 用于填充返回URL地址的设文本框 | | data-mimetype | image/gif,image/jpeg,image/png,image/jpg,image/bmp | 用于过滤允许上传的文件类型,支持mimetype或文件后缀名 | | data-multiple | false | 是否支持多图或多文件模式 | | data-preview-id | p-avatar | 用于预览返回URL地址的DIV | 如果我们想直接通过JS上传一个文件到我们的服务器,我们可以使用`Upload.api.send(file, success, failure, complete)`来上传文件。 **上传视频** 一、在html文件中,添加2个属性data-mimetype和data-maxsize。 ``` <div class="form-group"> <label class="control-label col-xs-12 col-sm-2">{:__('Vediofile')}:</label> <div class="col-xs-12 col-sm-8"> <div class="input-group"> <input id="c-vediofile" class="form-control" size="50" name="row[vediofile]" type="text"> <div class="input-group-addon no-border no-padding"> <span><button type="button" id="plupload-vediofile" class="btn btn-danger plupload" data-input-id="c-vediofile" data-mimetype="mp4,mp3,avi,flv,wmv" data-multiple="false" data-maxsize="50M"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> <span><button type="button" id="fachoose-vediofile" class="btn btn-primary fachoose" data-input-id="c-vediofile" data-mimetype="mp4,mp3,avi,flv,wmv" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> </div> <span class="msg-box n-right" for="c-vediofile"></span> </div> </div> </div> ``` 二、修改application/extra/upload.php中的maxsize配置: ``` <?php //上传配置 return [ // .... /** * 最大可上传大小 */ 'maxsize' => '50mb', /** * 可上传的文件类型(新增mp4,mp3,avi,flv,wmv视频文件后缀) */ 'mimetype' => 'jpg,png,bmp,jpeg,gif,zip,rar,xls,xlsx,mp4,mp3,avi,flv,wmv', // .... ``` 其他修改服务器