springMVC+jersey实现跨服务器文件上传

所属分类: 软件编程 / java 阅读数: 31
收藏 0 赞 0 分享

本文实例为大家分享了springMVC+jersey实现跨服务器文件上传的具体代码,供大家参考,具体内容如下

1.首先添加所需要的jar包

 

2.在springMVC的配置文件中添加文件上传解析器

<!-- 文件上传的解析器 -->
 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <!-- 文件上传大小的限制 -->
  <property name="maxUploadSize" value="5000000"></property>
  <property name="defaultEncoding" value="UTF-8"></property>
</bean>

3.jsp页面 

<form id="fm" action="" method="post">
 <p>
 <img src="" alt="" id="imgSrc"/>
 请上传头像:<input type="file" name="imgFile" id="imgFile" οnchange="fileUpload();"/>
 <input type="hidden" id="reletivePath" name="reletivePath" value="">
 </p>
</form>

4.文件上传的 js

 <!-- 文件上传js -->
<script type="text/javascript">
 function fileUpload(){
  var option = {
  type:"POST",
  url:"${pageContext.request.contextPath }/user/fileUpload.do",
  data:{
   fileName:"imgFile"
  },
  success:function(reData){
   alert(reData.reletivePath);
   $("#imgSrc").attr("height",100);
   $("#imgSrc").attr("width",100);
   $("#imgSrc").attr("src",reData.fullPath);
   $("#reletivePath").val(reData.reletivePath);
  },
  dataType:"json"
  };
  $("#fm").ajaxSubmit(option);
 }
</script>

5. controller

/*
 * 文件上传
 */
 @RequestMapping("fileUpload")
 public @ResponseBody Map<String , String> fileUpload(HttpServletRequest request,String fileName){
 System.out.println(111);
 //1.将普通请求转换为多部件请求
 MultipartHttpServletRequest mr = (MultipartHttpServletRequest)request;
 //2.根据文件名获取文件对象
 CommonsMultipartFile mf = (CommonsMultipartFile)mr.getFile(fileName);
 //3.获取文件全名称
 String originalFilename = mf.getOriginalFilename();
 System.out.println("文件全名称"+originalFilename);
 //4.获取后缀
 String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
 System.out.println("后缀"+suffix);
 //5.将文件对象转换为字节
 byte[] fileBytes = mf.getBytes();
 //6.获取新的随机文件名
 String newFileName="";
 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
 int num = (int)(Math.random()*899)+100;
 newFileName = sdf.format(new Date())+num;
 
 System.out.println("新的随机文件名"+newFileName);
 //开始上传
 //1.创建jesy服务器
 Client client = Client.create();
 String fullPath = "http://localhost:8088/fileServiceProject/upload/"+newFileName+suffix;
 //把文件关联到远程服务器
 WebResource wr = client.resource(fullPath);
 //2.相对路径
 String reletivePath = "/upload/"+newFileName+suffix;
 //3.上传
 wr.put(String.class, fileBytes);
 Map<String , String> map = new HashMap<String, String>();
 map.put("fullPath", fullPath);
 map.put("reletivePath", reletivePath);
 return map;
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Springmvc restful配置遇到的小坑

本文是小编给大家带了的Springmvc restful配置遇到的小小坑,小编给大家带来了问题原因及解决办法,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
收藏 0 赞 0 分享

Java中的匿名内部类小结

java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。这篇文章主要介绍了Java中的匿名内部类的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java的云打印Lodop

这篇文章主要介绍了Java的云打印Lodop 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java线程池框架核心代码解析

这篇文章主要针对Java线程池框架核心代码进行详细解析,分析Java线程池框架的实现ThreadPoolExecutor,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java 交换两个变量的数值实现方法

下面小编就为大家带来一篇Java 交换两个变量的数值实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

全面了解JAVA_BaseDAO数据处理类

下面小编就为大家带来一篇全面了解JAVA_BaseDAO数据处理类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java、python、JavaScript以及jquery循环语句的区别

本篇文章主要介绍java、python、JavaScript以及jquery的循环语句的区别,这里整理了它们循环语句语法跟示例,以便大家阅读,更好的区分它们的不同
收藏 0 赞 0 分享

基于JDBC封装的BaseDao(实例代码)

下面小编就为大家带来一篇基于JDBC封装的BaseDao(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

简单通用JDBC辅助类封装(实例)

下面小编就为大家带来一篇简单通用JDBC辅助类封装(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

浅谈java线程中生产者与消费者的问题

下面小编就为大家带来一篇浅谈java线程中生产者与消费者的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多