1:jsp 页面上传图片按钮在这里我就写相关的代码

        <div class="control-group">
<label class="control-label">营业执照:</label>
<div class="controls">
<input type="file" class="form-control-input" name="yingYeZhiZhaoName" value="${office.yingYeZhiZhao }"/>
<%-- <input type="hidden" name="yingYeZhiZhao" value="${office.yingYeZhiZhao }"/> --%>
</div>
<div class="controls"><img src="${office.yingYeZhiZhao }" width="203" title="点击更换图片" id="logoImgTag" /></div>
</div>

2:下面是控制层action 代码

@RequestMapping("/add")
public String addOffice(HttpServletRequest request, HttpServletResponse response,Office office, Model model, RedirectAttributes redirectAttributes, User user,String officeId,String userId,String roleName,MultipartFile yingYeZhiZhaoName) {
String originalFilename = yingYeZhiZhaoName.getOriginalFilename();
if((officeId !=null && !"".equals(officeId))&&(userId !=null && !"".equals(userId)) ){//修改用户信息
User newUser = systemService.getUser(userId);
Office newOffice = officeService.get(officeId); //用户表基本信息
if(StringUtils.isNotBlank(user.getPassword())){
String password = SystemService.entryptPassword(user.getPassword());
newUser.setPassword(password);
}
//newUser.setName(user.getName());//公司名称 //公司表信息
newOffice.setMaster(office.getMaster());
newOffice.setMasterSex(office.getMasterSex());
newOffice.setZhiWei(office.getZhiWei());
newOffice.setEmail(office.getEmail());//公司邮箱
newOffice.setName(office.getName());//公司名称
newOffice.setJianCheng(office.getJianCheng());//公司简称
newOffice.setProvince(office.getProvince());//省
newOffice.setCity(office.getCity());//市
newOffice.setAddress(office.getAddress());
newOffice.setDuiGongZhangHu(office.getDuiGongZhangHu());//对公账户
newOffice.setDuiGongShouKuan(office.getDuiGongShouKuan());//对公收款
newOffice.setDuiGongYinHang(office.getDuiGongYinHang());//对公银行
newOffice.setQuHao(office.getQuHao());
newOffice.setTelephone(office.getTelephone());//公司固话
newOffice.setRemarks(office.getRemarks());//备注 if(originalFilename !=null && !"".equals(originalFilename)){//如果是重新上传了图片
int num=(int)(Math.random()*100000);
Map<String, String> map = QiniuUtils.fileUploadPdf(yingYeZhiZhaoName,num+officeId);
newOffice.setYingYeZhiZhao(map.get(Constants.QIUNIU_EXHI_IMAGE_SOURCE));
}
officeService.updateSysOffice(newOffice);
systemService.udateUser(newUser);
//officeService.save(newOffice); }else{//添加用户信息 if(originalFilename !=null && !"".equals(originalFilename)){//如果是重新上传了图片
int num=(int)(Math.random()*100000);
Map<String, String> map = QiniuUtils.fileUploadPdf(yingYeZhiZhaoName,num+officeId);
office.setYingYeZhiZhao(map.get(Constants.QIUNIU_EXHI_IMAGE_SOURCE));
}
List<Role> roles = new ArrayList<Role>(0);
Role role = null;
User newUser = new User();
newUser.setPassword(SystemService.entryptPassword(user.getPassword()));// 设置密码
newUser.setMobile(user.getMobile());// 手机号码
newUser.setLoginName(user.getMobile());// 登录名(手机或者邮箱) role = systemService.getRole(roleName);//这地方判断是2是会展代理商15是会展主办方
roles.add(role); Role admin = new Role();
admin.setId(Constants.HE_ZUO_SHANG_ADMIN);// 默认注册的用户就是合作商管理员
roles.add(admin);
newUser.setRoleList(roles); Area area = new Area();
area.setId("1");
office.setCode(UUID.randomUUID().toString());
office.setType("1");
office.setGrade("1");
office.setUseable("1");
office.setDelFlag("0");
User createBy = new User();
createBy.setId("1");
Office poffice = new Office();
poffice.setId("0");
office.setParent(poffice);
office.setParentIds("0,");
office.setArea(area);
office.preInsert();
office.setIsNewRecord(true);
office.setCreateBy(createBy);
office.setUpdateBy(createBy);
office.setRole(role);
officeService.register(office);
newUser.setOffice(office);
newUser.setCompany(office);
newUser.setName(office.getName());
systemService.saveUser(newUser); } String id = "0".equals(office.getParentId()) ? "" : office.getParentId();
return "redirect:" + adminPath + "/sys/office/list?id=" + id + "&parentIds=" + office.getParentIds();
}

以上实现图片功能是把图片上传到七牛服务器上

注意

<input type="file" class="form-control-input" name="yingYeZhiZhaoName"  value="${office.yingYeZhiZhao }"/> 控件里面的name 不要和提交时表单对象里面的属性一样,所以这地方最好不要写对象属性的名字
3:下面是七牛部分代码
/**
* 七牛招展函上传
* @param file
* @param name
* @return
*/
public static Map<String, String> fileUploadPdf(MultipartFile file, String name) {
Map<String, String> map = new HashMap<String, String>();
try {
UploadManager uploadManager = new UploadManager(); // 上传到云中的文件名
// String newName = name+System.currentTimeMillis(); byte[] bytes = file.getBytes(); uploadManager.put(bytes, name, getUpToken0(name));
String isProduct = Global.getConfig("isProduct");
String url = null;
if ("Y".equalsIgnoreCase(isProduct)) {
url = Constants.QIUNIU_EXHI_IMAGE_URL;
} else if ("N".equalsIgnoreCase(isProduct)) {
url = Constants.QIUNIU_TEST_IMAGE_URL;
}
map.put("fileUrl", url + name);
map.put("disposeUrl", url + name + ":result");
} catch (Exception e) {
log.error("七牛上传文件失败:" + e.getMessage());
e.printStackTrace();
}
return map;
}
 

java 实现图片上传功能的更多相关文章

  1. java实现图片上传功能,并返回图片保存路径

    1.前端html <div class="form-group">     <label for="inputPassword3" class ...

  2. thinkphp达到UploadFile.class.php图片上传功能

    片上传在站点里是非经常常使用的功能.ThinkPHP里也有自带的图片上传类(UploadFile.class.php) 和图片模型类(Image.class.php).方便于我们去实现图片上传功能,以 ...

  3. Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能

    日常啰嗦 前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合>讲了富文本编辑器UEditor的整合与使用 ...

  4. java多图片上传--前端实现预览--图片压缩 、图片缩放,区域裁剪,水印,旋转,保持比例。

    java多图片上传--前端实现预览 前端代码: https://pan.baidu.com/s/1cqKbmjBSXOhFX4HR1XGkyQ 解压后: java后台: <!--文件上传--&g ...

  5. PHP语言学习之php做图片上传功能

    本文主要向大家介绍了PHP语言学习之php做图片上传功能,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 今天来做一个图片上传功能的插件,首先做一个html文件:text.php < ...

  6. [Ting's笔记Day8]活用套件carrierwave gem:(3)Deploy图片上传功能到Heroku网站

    前情提要: 身为Ruby新手村民,创造稳定且持续的学习步调很重要,我用的方法就是一周在IT邦写三篇笔记,希望藉由把笔记和遇到的bug记录下来的过程,能帮助到未来想用Ruby on Rails架站的新手 ...

  7. H5 利用vue实现图片上传功能。

    H5的上传图片如何实现呢? 以下是我用vue实现的图片上传功能,仅供参考. <!DOCTYPE html> <html> <head> <meta chars ...

  8. 给DEDECMS广告管理中增加图片上传功能

    dedecms的广告管理功能稍微有点次,本文就是在dedecms广告管理原有的基础上增加广告图片上传功能. 安装方法,对应自己的dedecms版本下载对应的编码然后解压把里面的文件放在后台目录覆盖即可 ...

  9. vue 图片上传功能

    这次做了vue页面的图片上传功能,不带裁剪功能的! 首先是html代码,在input框上添加change事件,如下:   <ul class="clearfix">   ...

随机推荐

  1. react脚手架和深入理解jsx语法

    react的mvc和vue的mvvm vue的mvvm属于双向绑定,view层,model数据层,vm实现双向绑定的控制层 此种模式,再某一类项目种很有优势:管理系统 ( OA, ERP , CRM ...

  2. 极客大挑战 2019 web 部分解

    复现环境:buuoj 0x01:Havefun F12查看源码,明显html注释里是一段php get方式传参数,payload:http://f5cdd431-df98-487f-9400-e8d0 ...

  3. 看 C++ Primer 的58页, 讲拷贝时不能忽略 底层const这里的说的原因有点牵强, 这里给出自己的理解

    extern const  int ci =42; const int * p2  = &ci; extern const  int *const p3= p2; int *p= p3;   ...

  4. 【C语言】将输入的10个整数逆序输出

    代码1: #include <stdio.h> int main() { ], b[]; int i,j; printf("请输入10个整数:\n"); ; i < ...

  5. C/C++中size_t潜在的问题

    在C++中,利用数组下标访问数组元素时,常常将下标类型定义为size_t类型,因为正常来说,数组的下标就是size_t类型.例如这样: for (size_t i = 0; i < contai ...

  6. TakeColor下载及调节鼠标指针不一致的问题

    取色器下载链接: 链接:https://pan.baidu.com/s/19TBWZA2ltaLQjzskTipnmg 提取码:2uz3 若出现指针与鼠标不一致: TakeColor v8.0 > ...

  7. C语言:将字符串中的前导*号全部移到字符串的尾部。

    //规定输入的字符串中只包含字母和*号,fun函数:将字符串中的前导*号全部移到字符串的尾部. #include <stdio.h> void fun( char *a ) { ]; ch ...

  8. 使用python实现归并排序、快速排序、堆排序

    归并排序 使用分治法:分而治之 分: 递归地拆分数组,直到它被分成两对单个元素数组为止. 然后,将这些单个元素中的每一个与它的对合并,然后将这些对与它们的对等合并,直到整个列表按照排序顺序合并为止. ...

  9. npm 配置国内淘宝镜像

    淘宝NPM镜像官网:http://npm.taobao.org/ npm config set registry=http://registry.npm.taobao.org -g 安装cnpm: n ...

  10. Jmeter在linux下的安装

    Apache Jmeter简介   Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量.它最初被设计用于Web应用测试但后来扩展到 ...