-
可以通过input标签外的div设置组件显示的大小。
-
type=“file”,指明其为input file类型。
-
name指定其在后台的接收参数的key。
-
id=“file”,通过id选中DOM元素,对上传组件进行渲染。
-
multiple,这个属性很重要,如果没有这个属性,渲染上传组件时,有些属性没有效果,下面有说明。
关于Fileinput的属性这里只设置了部分,下面有Fileinput的全部属性,可以参考根据项目需求添加。
其中maxFileCount属性设置上传文件上限,如果input标签中没有multiple属性,则没有效果。多图片上传,点击上传时会发送多次请求。
uploadAsync设置上传方式,异步上传,点击上传按钮后在上传。同步上传,选择完图片后就上传。
allowedFileExtensions指定上传文件的类型,BootStrap FileInput 可以效验文件类型,如果不是指定类型则给出提示。
uploadUrl设置上传路径,也就是服务器保存图片后台对应的方法代码如下。
@RequestMapping(value = “imgSave”)
@ResponseBody
public Map imgSave(MultipartFile file){
Map<String, Object> map = new HashMap();
try{
String uuid = UUID.randomUUID().toString()+“.jpg”;
Boolean bool = fileService.saveFile(file, uuid);
map.put(“result”, bool);
map.put(“msg”, “上传成功”);
return map;
}catch (Exception e){
map.put(“result”, false);
map.put(“msg”, “上传失败”);
return map;
}
}
其中saveFile方法是文件保存方法,代码如下。上传成功返回true,失败则返回false。
// 图片存放位置
private final static String IMAGEPATH=“E:\bootstrap\image”;
//保存图片
@Transactional
public boolean saveFile(MultipartFile file, String uuid){
try{
File path = path(file.getContentType());
String filename = file.getOriginalFilename();
SysFile fileEntity = new SysFile();
fileEntity.setFileName(filename);
fileEntity.setUuid(uuid);
String storeaddress = path.getAbsolutePath();
fileEntity.setStoreaddress(storeaddress);
File saveFile = new File(path,uuid);
try {
fileRepository.save(fileEntity);
file.transferTo(saveFile);
return true;
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
return false;
}
}catch (Exception e){
System.out.println(“图片保存异常”);
return false;
}
}
//图片地址是否存在
private File path(String filename) {
File pat=new File(“E:\bootstrap”);
File path=new File(SysFileService.IMAGEPATH);
if(!pat.isDirectory()) {
pat.mkdir();
}
if(!path.isDirectory()) {
path.mkdir();
}
return path;
}
图片上传完成后返回的函数回调数据。包含一些图片上传信息以及后台返回信息。
上传完成后效果
| 性名 | 属性类型 | 描述说明 | 默认值 |
| — | — | — | — |
| language | String | 多语言设置,使用时需提前引入locales文件夹下对应的语言文件,中文zh,引入语言文件必须放在fileinput.js之后 | ‘en’ |
| showCaption | Boolean | 是否显示被选文件的简介 | true |
| showBrowse | Boolean | 是否显示浏览按钮 | true |
| showPreview | Boolean | 是否显示预览区域 | true |
| showRemove | Boolean | 是否显示移除按钮 | true |
| showUpload | Boolean | 是否显示上传按钮 | true |
| showCancel | Boolean | 是否显示取消按钮 | true |
| showClose | Boolean | 是否显示关闭按钮 | true |
| showUploadedThumbs | Boolean | | true |
| browseOnZoneClick | Boolean | | false |
| autoReplace | Boolean | 是否自动替换当前图片,设置为true时,再次选择文件, 会将当前的文件替换掉。 | false |
| generateFileId | Object | | null |
| previewClass | String | 添加预览按钮的类属性 | “” |
| captionClass | String | | “” |
| frameClass | String | | ‘krajee-default’ |
| mainClass | String | | ‘file-caption-main’ |
| mainTemplate | Object | | null |
| purifyHtml | Boolean | | true |
| fileSizeGetter | Object | | null |
| initialCaption | String | | “” |
| initialPreview | Array/Object | | [] |
| initialPreviewDelimiter | String | | ‘$$’ |
| initialPreviewAsData | Boolean | | false |
| initialPreviewFileType | String | | ‘image’ |
| initialPreviewConfig | Array/Object | | [] |
| initialPreviewThumbTags | Array/Object | | [] |
| previewThumbTags | Object | | {} |
| initialPreviewShowDelete | Boolean | | true |
| removeFromPreviewOnError | Boolean | | false |
| deleteUrl | String | 删除图片时的请求路径 | ‘’ |
| deleteExtraData | Object | 删除图片时额外传入的参数 | {} |
| overwriteInitial | Boolean | | true |
| previewZoomButtonIcons | Object | | {prev: ‘’,next: ‘’,toggleheader: ‘’,fullscreen: ‘’,borderless: ‘’,close: ‘’} |
| previewZoomButtonClasses | Object | | {prev: ‘btn btn-navigate’,next: ‘btn btn-navigate’,toggleheader: ‘btn btn-default btn-header-toggle’,fullscreen: ‘btn btn-default’,borderless: ‘btn btn-default’,close: ‘btn btn-default’} |
| preferIconicPreview | Boolrean | | false |
| preferIconicZoomPreview | Boolrean | | false |
| allowedPreviewTypes | undefined | | undefined |
| allowedPreviewMimeTypes | Object | | null |
| allowedFileTypes | Object | 接收的文件后缀,如[‘jpg’, ‘gif’, ‘png’],不填将不限制上传文件后缀类型 | null |
| allowedFileExtensions | Object | | null |
| defaultPreviewContent | Object | | null |
| customLayoutTags | Object | | {} |
| customPreviewTags | Object | | {} |
| previewFileIcon | String | | ‘’ |
| previewFileIconClass | String | | ‘file-other-icon’ |
| previewFileIconSettings | Object | | {} |
| previewFileExtSettings | Object | | {} |
| buttonLabelClass | String | | ‘hidden-xs’ |
| browseIcon | String | | ’ ’ |
| browseClass | String | | ‘btn btn-primary’ |
| removeIcon | String | | ‘’ |
| removeClass | String | | ‘btn btn-default’ |
| cancelIcon | String | | ‘’ |
| cancelClass | String | | ‘btn btn-default’ |
| uploadIcon | String | | ‘’ |
| uploadClass | String | | ‘btn btn-default’ |
| uploadUrl | String | 上传文件路径 | null |
| uploadAsync | boolean | 是否为异步上传 | true |
| uploadExtraData | Object | 上传文件时额外传递的参数设置 | {} |
| zoomModalHeight | number | | 480 |
| minImageWidth | String | 图片的最小宽度 | null |
| minImageHeight | String | 图片的最小高度 | null |
| maxImageWidth | String | 图片的最大宽度 | null |
| maxImageHeight | String | 图片的最大高度 | null |
| resizeImage | boolean | | false |
| resizePreference | String | | ‘width’ |
| resizeQuality | number | | 0.92 |
| resizeDefaultImageType | String | | ‘image/jpeg’ |
| minFileSize | number | 单位为kb,上传文件的最小大小值 | 0 |
| maxFileSize | number | 单位为kb,如果为0表示不限制文件大小 | 0 |
| resizeDefaultImageType | number | | 25600(25MB) |
| minFileCount | number | 表示同时最小上传的文件个数 | 0 |
| maxFileCount | number | 表示允许同时上传的最大文件个数 | 0 |
| validateInitialCount | boolean | | false |
| msgValidationErrorClass | String | | ‘text-danger’ |
| msgValidationErrorIcon | String | | ’ ’ |
| msgErrorClass | String | | ‘file-error-message’ |
| progressThumbClass | String | | “progress-bar progress-bar-success progress-bar-striped active” |
| rogressClass | String | | “progress-bar progress-bar-success progress-bar-striped active” |
| progressCompleteClass | String | | “progress-bar progress-bar-success” |
| progressErrorClass | String | | “progress-bar progress-bar-danger” |
| progressUploadThreshold | number | | 99 |
| previewFileType | String | 预览文件类型,内置[‘image’, ‘html’, ‘text’, ‘video’, ‘audio’, ‘flash’, ‘object’,‘other‘]等格式 | ‘image’ |
| elCaptionContainer | String | | null |
| elCaptionText | String | 设置标题栏提示信息 | null |
| elPreviewContainer | String | | null |
| elPreviewImage | String | | null |