利用jersey 实现图片的上传

一、jersey

以下叙述纯属个人简介,有错请包涵指正,谢谢。

项目在随着业务和时间的增加,数据量会约而来越大。这儿就对项目的个鞥新与维护产生了影响。所以,就要把应用与数据分开。应用就是纯业务,项目里面不包含数据资料。把需要的数据资料都放在另一台服务器上,这样就避免了更新维护应用服务器的时候,对数据的顾虑。

jersey就能够实现这个要求。

首先,平时使用的大多都是get,post请求。tomcat在默认情况下是不支持put请求的。而jersey使用的是put请求。

要想实现tomcat支持put请求,只需要修改 tomcat下\conf\web.xml

<servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

        <param-name>readonly</param-name>

        <param-value>false</param-value>

        </init-param>

        <init-param>

            <param-name>listings</param-name>

            <param-value>false</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

</servlet>

添加红色字体部分。以使得tomcat支持put请求。

二、简单例子实现

1.先创建一个web项目,在WebContent下建立一个upload文件夹


2.创建一个Java项目

导入jar包jersey-core-1.18.1.jar、jersey-client-1.18.1.jar、commons-io-2.4.jar


JerseyClient.java 内容

package com.jersey.demo;

import java.io.File;
import java.io.IOException;

import javax.swing.JFileChooser;

import org.apache.commons.io.FileUtils;

import com.jersey.utils.FileNameCreator;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;

public class JerseyClient {

	public static void main(String[] args) throws IOException {
		// 要上传的文件
		JFileChooser chooser = new JFileChooser();
		chooser.showOpenDialog(null);
		File file = chooser.getSelectedFile();
		
		// 图片名称的生成器
		String url = FileNameCreator.creatRandomName("http://localhost:8080/file_server/upload/", file.getName());
		// jersey client
		Client client = new Client();
		// 设置请求路径
		WebResource resource = client.resource(url);
		// 将文件转换为byte数组
		byte[] buf = FileUtils.readFileToByteArray(file);
		//发送
		resource.put(String.class,buf);
		System.out.println("发送成功");
	}
}
FileNameCreator.java
package com.jersey.utils;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileNameCreator {
	/**
	 * 
	 * @param url http://localhost:8005/file_server/upload
	 * @param fileName
	 * @return http://localhost:8005/file_server/11111a.jpg
	 */
	public static String creatRandomName(String url,String fileName) {
		DateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmSSS");
		String  format = fmt.format(new Date());
		
		// 要保存的地址
		url = url + format +fileName;
		return url;
	}
}

运行添加图片即可。

在使用tomcat过程中会出现重启tomcat,或重新部署文件丢失的情况。针对这种情况,我们可以在

首先找到tomcat目录下conf目录下的server.xml文件,在server.xml文件中找到<Host></Host>然后在其中 加上这句。
<Context path="/file_server/upload" docBase="F:/wulidizhi"></Context> 
以tomcat在本机跑为例,一般是http://localhost:8080,当你访问http://localhost:8080/file_server/upload的时候,
path="/file_server/upload"。 docBase就是你想单独出来的物理地址。

猜你喜欢

转载自blog.csdn.net/m0_38044453/article/details/80803376