jersey跨域文件上传
1.1、添加upload文件夹
在webapps\Root文件夹下创建用于接收上传文件的upload文件夹
创建upload文件夹
1.2、修改conf\web.xml设置允许上传文件
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
1.3、启动tomcat服务器
Tomcat文件路径bin目录startup.bat
启动界面如下所示
之后登录http://localhost:8080/ 网址,显示Tomcat即为成功
之后往upload中放入图片,输入路径
效果如下图所示
二、后台开发
新建web项目,在pom.xml中添加依赖
<!-- 文件上传依赖 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><!-- servlet依赖,用于接收多媒体文件--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><!--jersey跨服务器上传依赖--><dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-client</artifactId><version>1.19</version></dependency><dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-core</artifactId><version>1.19</version></dependency>
application.yml配置上传文件的大小
#设置单个文件的大小,-1表示不限制,单位MB
max-file-size: 10MB
#设置单次请求的文件总大小,-1表示不限制,单位MB
max-request-size: 100MB因为我们启动8080已经占用了,所以这里我们要用8070
还有码写application.yml文件时注意空格,否则会出现配置错误
server:port: 8070
spring:servlet:multipart:#设置单个文件的大小,-1表示不限制,单位MBmax-file-size: 10MB#设置单次请求的文件总大小,-1表示不限制,单位MBmax-request-size: 100MB
Jersey工具类
逻辑整理
给文件设置个名称,保证唯一 获取当前时间的时间戳(毫秒数) 随机生成3位数,拼接到时间戳后面 获取原文件的后缀名 获取原版文件的文件名,比如aaa.png 创建Jersey对象,进行文件上传 想得到的效果:http://localhost:8080/upload/245525665555265.png serverUrl=http://localhost:8080/upload / fileName=245525665555265.png 通过Jersey上传文件 获取文件的路径
package demo.utils;import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.util.Date;
import java.util.Random;/*** 上传文件的工具类*/
public class JerseyFileUploadUtil {/*** 上传文件** @param file 要上传的文件* @param serverUrl 文件服务器的路径,比如http://localhost:8080/upload* @return*/public static String uploadFile(MultipartFile file, String serverUrl) throws IOException { //第1步:给文件设置个名称,保证唯一String fileName = null;//获取当前时间的时间戳(毫秒数)long timeStamp = new Date().getTime();fileName=fileName+timeStamp;//随机生成3位数,拼接到时间戳后面Random r = new Random();//用于生成随机数对象for (int i=0;i<3;i++){// fileName= fileName +(int)(Math.random()*10);fileName= fileName + r.nextInt(10);//生成一个0-10之间的随机整数}//获取原文件的后缀名//获取原版文件的文件名,比如aaa.pngString sourceFileName = file.getOriginalFilename();//获取文件的后缀名.pngString suffix = sourceFileName.substring(sourceFileName.lastIndexOf("."));//indexOf从左往右 lastIndexOf从右往左fileName = fileName + suffix; //生成时间戳+3位随机数+后缀名,比如:245525665555265.png//第2步:创建Jersey对象,进行文件上传Client client = Client.create();//想得到的效果:http://localhost:8080/upload/245525665555265.png//serverUrl=http://localhost:8080/upload / fileName=245525665555265.pngWebResource webResource = client.resource(serverUrl+"/"+fileName);//第3步:通过Jersey上传文件webResource.put(String.class,file.getBytes());//第4步:获取文件的路径return fileName;}
}
Controller
然后执行文件,如果出现下面执行错误,jdk版本不对
第一步 prom中版本更改,3.0.0改成2.6.3
第二步
第三步
验证服务器启动成功,执行Demo类
三、前端开发
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="assets/vue.min-v2.5.16.js"></script><script src="assets/axios.min.js"></script>
</head>
<body>
<div id="app"><!-- 上传文件控件--><input type="file" @change="upload"><img :src="imgUrl"/></div>
<script>new Vue({el: '#app',data: {imgUrl:null},methods: {//上传文件//上传文件要取到,所以用e来获取upload(e){var file = e.target.files[0];//获取要上传的文件var formData=new FormData();formData.append("file",file);//通过axios发送请求axios.post("http://localhost:8070/uploadFile",formData,{'Content-type':'multipart/form-data'}).then(response=>{console.log(response.data);this.imgUrl= response.data;});}}});
</script>
</body>
</html>
效果如图
同时文件夹中也要保存有
jersey跨域文件上传相关推荐
- php js跨域上传文件,Jquery实现跨域异步上传文件步骤详解
这次给大家带来Jquery实现跨域异步上传文件步骤详解,Jquery实现跨域异步上传文件的注意事项有哪些,下面就是实战案例,一起来看一下. 先说明白 这个跨域异步上传功能我们借助了Jquery.for ...
- springMVC结合jersey实现跨服务器文件上传
除了spring相关的依赖依赖,我们需要添加jersey的两个相关依赖,版本信息可以不同. <dependency><groupId>com.sun.jersey</gr ...
- SpringMVC第二讲——传参、修改端口、请求转发、重定向、跨服务器文件上传
传参 在地址栏?代表开始传参,用&来分隔变量 /*** 请求参数-简单传参* @param name* @param age* @return*/@RequestMapping("t ...
- C/C++:mongoose.c实现多表单域文件上传
前言 笔者这里有需求需要用mongoose.c在上传文件的时候同时还要提交其他表单字段,百度一圈居然没有一个完整的例子,都是把源码示例的上传文件例子抄,讲也没讲明白.源码示例都是只有1个文件域上传.由 ...
- Jersey框架:文件上传下载
企业应用中,文件管理是非常通用和重要的模块,功能包括文件上传.下载.文件管理(浏览.删除.权限等)等操作,本文针对Jersey框架实现文件的上传和下载. Jersey文件特性 Jersey实现文件上传 ...
- form上传文件以及跨域异步上传
要设置了enctype属性才能上传,需要使用上传的jar包,这里使用的是cos-26Dec2008.jar, 关于跨域上传文件: 跨域上传文件总会报错,即使服务器端设置了header('Access- ...
- 前后端分离跨服务器文件上传,SpringBoot+Vue.js实现前后端分离的文件上传功能
这篇文章需要一定vue和springboot的知识,分为两个项目,一个是前端vue项目,一个是后端springboot项目. 后端项目搭建 我使用的是springboot1.5.10+jdk8+ide ...
- Springmvc跨服务器文件上传报403,409错误
报403错误 Tomcat默认只读模式,传图片会被拒绝 解决:找到 Tomcat 目录---conf下---web.xml,打开 加入 <init-param><param-name ...
- android上传文件php,PHP编写安卓文件上传接口
为了快速满足安卓客户端或跨域文件上传接口,现在用PHP写个可以文件上传类.可通过安卓客户端或者其他域名的网站上传窗口,可以把文件上传指定的服务器中,下面是详细代码.//主方法获取上传文件 public ...
最新文章
- .net core razor ajax,.NET CORE Razor Pages Ajax 调用 C# 方法
- Android利用温度传感器实现带动画效果的电子温度计
- TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨5.35%
- java 日期 年数_关于java:为什么不赞成使用“新日期(整数年,整数月,整数日)”?...
- Solve error: Cannot open include file: 'X11/Xlocale.h': No such file or directory
- [转载] Java之可变参数
- php动态交叉表,SQLServer:SQL实现动态交叉表
- shell split分析日志文件
- VBScript: Windows脚本宿主介绍
- 【数学期刊】世界著名数学期刊
- 企业邮箱被反垃圾邮件联盟封了的方法
- cocos2dx android工程接入联通Unipay sdk
- No suitable resolver
- 基于华为巴龙MH5000-31 5G工业/商业模组开发(二)
- SSM餐饮管理点餐系统
- cesium加载BIM模型
- 运动学习与控制 追加反馈
- 测试基础篇之(postman接口和Fiddler测试)
- linux ppoe,linux下连接windows2003 ppoe 服务器
- web前端-css中最直观的反馈-伪类及伪元素选择器的使用
热门文章
- 使用sealer-构建、交付、运行【kubernetes】-demo
- 目标常用跟踪算法——PF篇
- 【论文解析】Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
- 经典<6D姿态估计算法>汇总
- 将所有的碎片信息放进去的结构 ,大大减轻大脑的负担,更容易地解决问题
- sequoiadb mysql_SequoiaDB 巨杉数据库
- postgreSQL触发器
- Codeforces 742A Arpa’s hard exam and Mehrdad’s naive cheat 打表+水题
- 机器学习评价指标AUC计算公式
- android 图解 PhotoView,从‘百草园’到‘三味书屋’!