搭建Tomcat文件服务器--jersey

----------基于Tomcat搭建文件服务器

目的: 快速搭建自己的文件服务器,做到文件和项目分离

原理:tomcat映射虚拟目录作为文件服务器,使用Jersey客户端,跨服务器上传文件

Jersey客户端代码:

		//Jersey客户端
		private	Client client = Client.create();

/**
	 * 需求:上传文件,页面不刷新,图片里面回显
	 * 技术:ajax,跨服服务器上传
	 * 请求:uploadPic
	 * 参数:String fileName
	 * 返回值:图片地址json格式路径
	 * 文件名:防止文件名重复
	 * 分布式文件名定义:毫秒+随机数
	 */
	@RequestMapping("upload")
	public void uploadPic(HttpServletRequest request,String fileName,Integer type, HttpServletResponse response){
		try {
			//把request转换成多部件请求对象
			MultipartHttpServletRequest mh = (MultipartHttpServletRequest) request;
			//根据文件name属性名称获取文件对象
 			CommonsMultipartFile cm = (CommonsMultipartFile) mh.getFile(fileName);
			long size = cm.getSize();
			if (size > 2097152) {//2M
				outJsonObj(new RespObjInfo(ErrorCode.BUSINESS_ERROR_2001,"文件过大!"),memberNo,osName,"1001", version, response);
				return;
			}
			//获取文件扩展名
			//获取文件名称
			String originalFilename = cm.getOriginalFilename();
			if (judgeLegalOfPic(originalFilename)) {
				return;
			}
			//截取获取文件扩展名
			String extName = originalFilename.substring(originalFilename.lastIndexOf("."));
			
			//使用毫秒+随机数定义文件名
			long currentTimeMillis = System.currentTimeMillis();
			//文件名
			String fn = currentTimeMillis+"";
			//随机数
			Random r = new Random();
			for(int i=0;i<4;i++){
				fn=fn+r.nextInt(10);
			}
			//文件名
			fn=fn+extName;
			//上传文件
			String pathPic = Constants.PATH_MAP.get(type);
			if (StringUtils.isBlank(pathPic)) {
				//路径类型不合法
			}
			//指定远程服务器绝对路径
			WebResource resource = client.resource(Constants.IMAGE_HOST + pathPic + fn);
			//上传文件
			resource.put(String.class, cm.getBytes());
			//图片回显
			//把远程图片服务图片地址返回给页面ajax解析
			String fullPath = Constants.IMAGE_HOST + pathPic + fn;
			//打印路径,路径json格式
			Map<String,String> jsonResult = new HashMap<String,String>();
			jsonResult.put("fullPath", fullPath);	
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

有没有感觉很简单,这样就完成客户端开发了

服务端配置tomcat server.xml:

<Context docBase="E:\pic" path="/pic" reloadable="false"/>

以上就完成了服务器配置,可以双击666了吧

jersey maven依赖:

<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client -->
		<dependency>
		    <groupId>com.sun.jersey</groupId>
		    <artifactId>jersey-client</artifactId>
		    <version>1.19.4</version>
		</dependency>

注意: tomcat需要配置 readonly为false

有没有感觉很简单,就是这样easy

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值