Java实现图片上传到服务器


#这几天研究图片上传到服务器并回显到页面遇到了问题,在这里总结一下!希望对各位有用!!!

先上代码

jsp代码:

<form id="myform" method="post" enctype="multipart/form-data"><div class="form-group" ><label for="plainGoodsName">商品名</label><input type="text" class="form-control" id="plainGoodsName" name="plainGoodsName" placeholder="请输入商品名"></div><div class="form-group"><label for="plainGoodsImg">商品图片</label><a style="float: left;border:1px solid #eee;width: 100%;padding: 10px;box-sizing: border-box;margin:5px 0;" href="javascript:;" class="a-upload"><input type="file" name="files" id="plainGoodsImg" onchange="xmTanUploadImg_1(this,'xmTanImg_1')" accept="image/*"/><img style="width: 80px;" id="xmTanImg_1"/><div style="width: 80px;height: 80px;display: none;" id="xmTanDiv_1"></div></a></div><div class="form-group"><label for="plainGoodsPrice">商品价格</label><input type="text" class="form-control" id="plainGoodsPrice" name="plainGoodsPrice" placeholder="请输入商品价格"></div><div class="form-group"><label for="plainGoodsNum">商品库存</label><input type="text" class="form-control" id="plainGoodsNum" name="plainGoodsNum" placeholder="商品库存"></div><div class="form-group"><label for="plainGoodsContext">商品描述</label><!-- <input type="text" class="form-control" id="plainGoodsContext" name="plainGoodsContext" placeholder="商品描述"> --><textarea class="form-control" id="plainGoodsContext" name="plainGoodsContext" rows="3"></textarea></div><div class="form-group"><label></label><button type="button" onclick="saveGoods()" class="btn btn-primary">添加商品</button></div></form>

问题

第一、上传图片时form表单中加入 enctype=“multipart/form-data” 否则会出现问题 后台接收不到
(jsp的id接收后台传过来的值 通过标签赋值 name是向后台传值用的 如果没有name没法传值==这是给我自己写的)

js代码

 var formData = new FormData($( "#myform" )[0]);$.ajax({url:"${ctx}/back/exchangeShopping/addGoods.action",type:"POST",dataType:"json",data:formData,processData: false,// 不加会报错contentType: false,// 不加会报错success:function(data) {if(data == "true"){layer.msg('添加成功',{icon:6,time:1500,end:function () {window.location.reload();}});}else {layer.msg(data,{icon:5,time:1500});}}})

有几个要注意的地方:
第一、ajax要加上两个属性
processData: false,// 不加会报错
contentType: false,// 不加会报错
第二、 var formData = new FormData($( “#myform” )[0]);
使用formdata序列化表单
关于jquery的 $(“form”).serialize()和 new FormData表单序列化
网址:https://blog.csdn.net/cracklibby/article/details/80013112
$(“form”).serialize()只会序列化表单不会序列化文件

问题:带文件上传的form表单序列化 传参问题
使用formdata 序列化form表单 后台使用@RequestParam(value = “files”, required = false)MultipartFile files,wFrontPlainGoods goods 接收
并且MultipartFile 名字要与页面name的名字相同

controller页面

@ResponseBody@RequestMapping("/addGoods.action")public String addGoods(@RequestParam(value = "files", required = false)MultipartFile files,wFrontPlainGoods goods){String Info = this.backExchangeShoppingService.addGoods(goods,files);return JSONObject.toJSONString(Info);}

后台 MultipartFile 接收文件 注意 名字要与页面起的名字一样(有些文章写的是名字一定不要一样 具体问题具体分析 我是小白不确定这个是为什么)
后面的对象时接收除文件以外的其他信息!

service页面:

//定义图片存储在服务器的路径public static final String PICTUREURL = "D:/nginx-1.13.8/html/slitLamp/screening/";public static final String CONFIGUREURL = "http://10.11.23.203:8029/";public String uploadPictureByFile(MultipartFile file) {// TODO 自动生成的方法存根String filename1 = "picture_" + UUID.randomUUID() + ".jpg";//生成唯一图片路径if (!file.isEmpty()) {  try {  File filepath = new File(PICTUREURL);if (!filepath.exists()) filepath.mkdirs();// 文件保存路径  String savePath = PICTUREURL + filename1;  // 转存文件  file.transferTo(new File(savePath));  } catch (Exception e) {  e.printStackTrace();  }  }  String url = CONFIGUREURL + filename1;return url;}

问题
第一、D:/nginx-1.13.8/html/slitLamp/screening/ 为图片存在nginx下的路径
http://10.11.23.203:8029/ 为nginx的IP+端口 通过这个可以访问启动nginx的页面
第二、配置nginx 在nginx下的conf文件夹下的nginx.conf文件中配置图片储存路径`
第三、程序的图片是下载到本地的 使用nginx挂载本地的图片 然后启动nginx服务后通过nginx的IP+端口+(有可能还要加)+图片名访问

    location ~ \.(gif|jpg|jpeg|png|bmp|swf)$              ###处理图片  {    root         D:/nginx-1.13.8/html/slitLamp/screening/;   ###对应的图片存入路径  }    图片:![nginx配置图片](https://img-blog.csdnimg.cn/20190306091445409.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExMTk0ODIxNTY4,size_16,color_FFFFFF,t_70)

关于nginx的问题

配置nginx的网址(Windows版 参考):
https://blog.csdn.net/y19910825/article/details/80301393
参考:
https://blog.csdn.net/qq_19244423/article/details/46877983
一台服务器挂载另一台服务器信息 参考:[Linux部署nginx挂载文件]
https://www.linuxidc.com/Linux/2013-07/87183.htm

当程序部署到服务器上时可以通过访问其他服务器来分担部署程序服务器的负载 以防止出现问题

另外发现一种方法是将图片上传到七牛云服务器上 调用他们的接口 他们给返回图片链接 直接将链接保存到本地就可以
网址参考:[七牛云]
https://www.w3cschool.cn/opensnscourse/euks1ppj.html

以上链接是从网上复制过来的 如有问题请联系本人删除!!!

Java实现图片上传到服务器相关推荐

  1. java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...

  2. java图片如何上传_Java如何将图片上传到服务器

    Java如何将图片上传到服务器 发布时间:2020-11-10 17:28:18 来源:亿速云 阅读:96 作者:Leah 这篇文章将为大家详细讲解有关Java如何将图片上传到服务器,文章内容质量较高 ...

  3. java如何加入扫描上传_javaWEB连接扫描仪,将扫描的的图片上传至服务器

    问题: 项目中有一个功能,原来是用ckfinder做的,可以选择本地图片上传至服务器,然后将服务器的图片显示在浏览器中,并可以将图片地址保存到数据库:现在客户觉得麻烦,提出连接扫描仪扫描后直接上传至服 ...

  4. Android简单实现将手机图片上传到服务器中

    在本例中,将会简单的实现安卓手机将图片上传到服务器中,本例使用到了 服务器端:PHP+APACHE 客户端:JAVA 先简单实现一下服务器端的上传并测试上传效果,看实例 <?php if(emp ...

  5. java的图片上传与前端展示实例(Servlet+Jsp)

    java的图片上传与前端展示实例(Servlet+Jsp) 内容前瞻 1.关于路径 2.前端图片上传与展示 3.后台获取并保存 环境 1.前端jsp 2.服务器tomcat 3.服务端servlet ...

  6. jsp 文件/图片上传tomcat服务器

    关于文件/图片上传tomcat服务器 1.环境准备和情况说明 JSP 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器. 上传的文件可以是文本文件或图像文件或任何文档. 使用 Se ...

  7. java 二进制图片上传_Spring MVC上传图片,Java二进制图片写入数据库,生成略缩图...

    背景描述:最近做到一个项目,有个商品登记功能.登记的信息包括:基本信息若干(文字信息):图片信息,要求将图片保存到数据表中的image字段(sql server 数据库) 步骤:1.将图片上传到服务器 ...

  8. php微信小程序多图上传,tp5实现微信小程序多图片上传到服务器功能

    最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端,这里做一个讲解,希望对大家有所帮助. 1,小程序端: 在wxml文件中: 删除 点击上传作业 在js文件中: Page({ / ...

  9. Java实现文件上传到服务器(FTP方式)

    Java实现文件上传到服务器(FTP方式) 1,jar包:commons-net-3.3.jar 2,实现代码: //FTP传输到数据库服务器private boolean uploadServerB ...

最新文章

  1. java 重复start,iText中带有“start”属性的有序列表[重复]
  2. 看了AI种草莓,我想回去当农民
  3. STM32 进阶教程 2 - micropython 使用
  4. Spring 5 新增全新的reactive web框架:webflux
  5. 【SQL-分组合并字符串】把相同分组的某个字段合并为同一个字符串(使用函数)...
  6. 020303阶段三 I/O复用 select和epoll的文件描述符管理
  7. 图卷积神经网络_深度层次化图卷积神经网络
  8. android 暂停音乐播放器,Android仿音乐播放器带进度的播放暂停按钮
  9. 联想高校AI精英挑战赛总冠军出炉!助力中国迎来智能变革
  10. win7计算机的蓝牙,win7电脑蓝牙怎么开
  11. 抖音扫码跳转QQ群等外链源代码分享
  12. 简单理解下用户体验五要素
  13. linux tmp php文件怎么打开,tmp文件用什么打开
  14. E9000刀片服务器维护记录
  15. 计算机体系结构——1.1 计算机体系结构的概念与发展
  16. 当百度也来玩众筹,是否可以为众筹正名?
  17. 天猫登录 post java_天猫登录POST问题
  18. 事务的四个特性以及四个隔离级别
  19. 工资管理系统(附源码,直接复制就可以跑起来)
  20. 1-Openwrt ipv6之-odhcp6c客户端

热门文章

  1. Android-动态修改APP桌面图标
  2. python程序代码
  3. php生成数字和字母的随机组合,php随机生成数字字母组合的方法,php生成数字字母_PHP教程...
  4. LeetCode:逆波兰式;
  5. 天翼云内网服务器映射端口,天翼云服务器创建对等连接(不同账户组内网)
  6. 天翼云linux版本,天翼云Linux主机操作
  7. Arcpy基础入门-3、arcpy创建地理处理工具
  8. 《95后的指数基金投资课》进阶阶段:估值判断之最基本的估值指标-市盈率PE,市净率PB,股息率
  9. Confluence安装与破解
  10. 基因测序与高通量测序区别