今天做了文件上传的功能,因为项目采用了bootstrap的框架做的,首先想到的是bootstrap是否有支持的上传文件的插件,所有找到了fileinput插件。
参考实例: http://plugins.krajee.com/file-input/demo
一.在前端页面上的操作,代码如下:
首先引用css和js文件:fileinput.css和fileinput.min.js (在官网下载即可)
<div id="company_detail" class="form-group"> <label class="col-sm-2 control-label no-padding-right">营业执照</label> <div class="col-sm-4"> <input id="company_card" name="file_name" type="file" class="file-loading" accept="image/*"> <input name="company_card" type="text" hidden="hidden"> </div> </div>
jQuery(function($) {
$(".form-group input[name='user_nature']").click(function(){
var natureValue = $(this).val();
if(natureValue == 2){
$('#user_identity').css({display:'block'});
$('#company_detail').css({display:'none'});
}
if(natureValue == 3){
$('#user_identity').css({display:'none'});
$('#company_detail').css({display:'block'});
}
});
var initFileParam = {
uploadUrl: "/member/user/file-upload",
autoReplace: true,
maxFileCount: 1,
allowedFileExtensions: ["jpg", "png", "gif"],
browseClass: "btn btn-sm btn-warning", //按钮样式
cancelClass: "btn btn-sm disabled", //按钮样式
uploadClass: "btn btn-sm btn-success",
dropZoneTitle: "可以将图片拖拽到这里哦...",
browseLabel:'选择',
removeLabel:'删除',
uploadLabel:'上传',
removeClass: "btn btn-sm btn-danger fileinput-remove fileinput-remove-button",
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
showUpload:true,
showCancel:false,
showRemove:true,
showCaption: false
};
$("#company_card")
.fileinput(initFileParam)
.on("fileuploaded", function (e, data) {
var res = data.response;
$("input[name='company_card']").val(res.path);
});
});
二、后台采用的是php yii2框架开发的,代码如下:
//先引用所用到的类库
use Yii;
use yii\web\Controller;
use yii\web\UploadedFile;
//具体方法上传文件的方法:
public function actionFileUpload(){
if (Yii::$app->request->isPost) {
$res = [];
$initialPreview = [];
$initialPreviewConfig = [];
$images = UploadedFile::getInstancesByName("file_name");
// print_r($images);
// exit;
if (count($images) > 0) {
foreach ($images as $key => $image) {
if ($image->size > 2048 * 1024) {
$res = ['error' => '图片最大不可超过2M'];
return json_encode($res);
}
if (!in_array(strtolower($image->extension), array('gif', 'jpg', 'jpeg', 'png'))) {
$res = ['error' => '请上传标准图片文件, 支持gif,jpg,png和jpeg.'];
return json_encode($res);
}
$dir = './upload/'; //该目录是在 yii框架下的web目录下,如果没有,请新建
//生成唯一uuid用来保存到服务器上图片名称
$pickey = md5(uniqid(microtime(true),true));
$filename = $pickey . '.' . $image->getExtension();
$file = $dir . $filename;
if ($image->saveAs($file)) {
$res = [
'state' => 1,
'name' => $filename,
'path' => $file,
];
}else{
$res = [
'state' => 0,
'name' => '',
'path' => '',
];
}
}
}
return json_encode($res);
}
三、上传截图:



好了,大功告成,有不懂的,可以下方留言哦