1、页面代码布局

<div class="layui-col-xs12 form-group">
<div class="layui-col-xs6">
<div class="layui-col-xs3">
<label>标题</label>
</div>
<div class="layui-col-xs7">
<input type="text" name="title" id="title" required lay-verify="required"
placeholder="请输入图片标题"
autocomplete="off" class="layui-input">
<input type="hidden" name="id">
</div>
</div>
</div>

2、点击放大设置

var renderImg = function () {
form.render();
layer.photos({
photos: '.theImg'
, anim: //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
});
}

3、上传成功之后,回显

//图片上传
upload.render({
elem: '#uploadImg'
, url: "commonCtrl/receiptUpload" //必填项
, method: '' //可选项。HTTP类型,默认post
, accept: 'images'
, acceptMime: 'image/*'
, data: {flag: "rotationChart"} //可选项。额外的参数,如:{id: 123, abc: 'xxx'}
, before: function (obj) { //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
//预读本地文件示例,不支持ie8
}
,done: function(res){
//如果上传失败
if(!res.success){
return layer.alert('上传失败');
}
//上传成功
var img = '<img layer-pid="rotationChartDiv" alt="" layer-src="' + res.data.url + '" src="' +
res.data.url + '" style="max-width: 100%;max-height: 100%;">';
$("#rotationChartDiv").html(img);
$("#url").val(res.data.url);
//点击放大
          renderImg();
}
,error: function(){
layer.msg("上传失败");
}
});

end:补上上传接口实现代码

controller层

 @RequestMapping(value = "/receiptUpload", method = RequestMethod.POST)
@ResponseBody
public YJLResponseModel receiptUpload(@RequestParam("file") MultipartFile img, @RequestParam String flag) {
return UploadUtil.fileUploadServices(img, flag);
}

service层:

public static Map fileUploadServices(MultipartFile file,
String flag) {
Map<String, String> result = new HashMap<>();
String name = file.getOriginalFilename();
String suffixName = "";
/*
* MultipartFile转File
*/
File f = null;
try {
if (!name.contains(".")) {
errorMsg = "文件不能为空!";
throw new Exception(getErrorMsg());
} else {
suffixName = name.substring(name.indexOf("."));
f = File.createTempFile("tmp", null);
//通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。MultipartFile转存后,无法再操作,会报错
file.transferTo(f);
//在JVM进程退出的时候删除文件,通常用在临时文件的删除.
f.deleteOnExit(); /*
* File转byte
*/
byte[] buffer = null;
if (f != null) {
FileInputStream fis = new FileInputStream(f);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[];
int n;
while ((n = fis.read(b)) != -) {
bos.write(b, , n);
}
fis.close();
bos.close();
buffer = bos.toByteArray(); /*
* byte上传到webService
*/
UploadService myServiceImplService = new UploadService();
UploadServiceSoap msis = myServiceImplService.getUploadServiceSoap();
//是否上传成功
Holder<Boolean> hb = new Holder<>();
//上传成功后文件的路径
Holder<String> hs = new Holder<>();
msis.uploadFile(buffer, flag, suffixName, hb, hs);
if (hb.value) {
setSuccess(true);
Map<String, String> map = new HashMap<>();
map.put("url", hs.value);
result.put("data",map);
} else {
errorMsg = "上传失败!";
}
} else {
errorMsg = "文件不能为空!";
throw new Exception(getErrorMsg());
}
} } catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
} finally{
result.put("msg",errorMsg);
}
return result;
}

layui 上传图片回显并点击放大实现的更多相关文章

  1. WebUploader 上传图片回显

    /* fileMaxCount 最大文件数 buttonText 按钮文本 multiple 是否多选 */ (function ($) { $.fn.extend({ uploadImg: func ...

  2. Kindeditor上传图片回显不出来

    原因之一: 图片成功上传但是回显不出来,这个时候,要检查返回的图片地址是否加了http://这个玩意,不然会将原来的头加上图片返回地址.

  3. 前端上传图片回显并用base64编码,后端做解码储存,存储图片路径在.properties文件中配置(以上传身份证照片为例)

    前端页面:<form id="kycForm" enctype="multipart/form-data"> <input type=&quo ...

  4. js实现上传图片回显功能

    用到h5技术 <img id="headimg" src="<%=path%>/resources/images/icon4.png" sty ...

  5. js上传图片回显

    $("#file01").change(function(){ var objUrl = getObjectURL(this.files[0]) ; console.log(&qu ...

  6. Vue -- element-ui el-table 点击tr项页面跳转,返回后缓存回显点击项

    页面跳转反显(点击项,点击table滚动的位置,搜索条件,分页回显) 点击table tr项后,页面跳转到下级页面,返回回显搜索条件.当前页码.并将点击项select选中.滚动条也被记录回显跳转时滚动 ...

  7. layui在open弹出层回显,解决动态select数据回显问题

    //监听数据表格工具条         table.on('tool(contentList)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 l ...

  8. layui——上传图片,并实现放大预览

    一般上传文件后会返回文件的路径,然后存储到数据库,那么首先实现上传后的放大和删除功能 function uploadSmallPic() { var upload = layui.upload; up ...

  9. 使用Dropzone上传图片及回显演示样例

    一.图片上传所涉及到的问题 1.HTML页面中引入这么一段代码 <div class="row"> <div class="col-md-12" ...

随机推荐

  1. 01-python3基础-基本数据类型

    Python3 基本数据类型 标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Diction ...

  2. P1073 最优贸易 建立分层图 + spfa

    P1073 最优贸易:https://www.luogu.org/problemnew/show/P1073 题意: 有n个城市,每个城市对A商品有不同的定价,问从1号城市走到n号城市可以最多赚多少差 ...

  3. codeforce375div2-D. Lakes in Berland 搜索

    Lakes in Berland 题意与解释:这道题就是求图中被围起来的点群,问最少去掉几个点,可以使得孤立的点群数目为K; 因为自己写的代码又长又had bugs. 我自己写的bfs,想着是先染色, ...

  4. CodeForces 809B Glad to see you!

    Glad to see you! 题解: 交互题一般都是需要用二分去完成. 在二分时候每次检查左边和右边哪边会和答案更近, 然后在更近的那段新区间去重复检查, 知道区间长度为1. 在检查的时候,可以使 ...

  5. Period UVALive - 3026

    For each prefix of a given string S with N characters (each character has an ASCII code between 97 a ...

  6. Python——最美丽的编程语言

    之前总听别人说Python有多厉害,有多好,我是不以为然的.但是当我开始接触Python的时候,我就知道它被誉为最美编程语言不是没有道理的.简短的代码,清晰明了的逻辑,方便快捷的编程工具让它注定会大放 ...

  7. yzoj1891 最优配对问题 题解

    题意 有n个点,且2|n,要求将其分为n/2对点对使得所有点对中距离之和尽量小 输出保留两位小数 考虑数据范围先想到的是搜索,然而搜索超时,我们发现在搜索的时候有重复搜索的情况,那么考虑记忆化,看到数 ...

  8. Cloudera版本的hadoop环境准备

    对于普通学习用户而言,应该先下载一个虚拟机, 推荐vmware,因为是免费的. Hadoop环境有三个版本: Apache版本(Apache基金会) CDH(cloudera公司) hdp版本(Hor ...

  9. .NET框架之“小马过河”

    .NET框架之"小马过河" 有许多流行的.NET框架,大家都觉得挺"重",认为很麻烦,重量级,不如其它"轻量级"框架,从而不愿意使用.面对形 ...

  10. jumper-server-资源管理

    https://cloud.tencent.com/developer/article/1460469 此链接是百度搜索的 , 比较详细 https://www.cnblogs.com/zsl-fin ...