1;postman配置
2;代码
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.apache.log4j.Logger;
import org.apache.tomcat.util.http.fileupload.FileItem;
import org.apache.tomcat.util.http.fileupload.FileItemFactory;
import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;
import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;
@POST
@Path("/Y5_TestSOA")
@Consumes({MediaType.MULTIPART_FORM_DATA})
@Produces("application/json; charset=utf-8")
public String Y5_TestSOA(@Context HttpServletRequest request) {
Map<String, String[]> parameterMap = request.getParameterMap();
System.out.println("Y5_TestSOA start");
if (ServletFileUpload.isMultipartContent(request)) {
try {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
Map<String, List<FileItem>> items = null;
// items = upload.parseRequest( request);//key对应的值唯一时使用
items= upload.parseParameterMap(request);
List<FileItem> files1= items.get("keyword");//Text格式数据
if (files1 != null) {
System.out.println("keyword is not null");
Iterator<FileItem> iter = files1.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
System.out.println("key is:"+item.getFieldName()+";value is:"+item.getString());
}
}
String deskPath="C:\\Users\\Administrator\\Desktop\\";
List<FileItem> files= items.get("file");//File格式数据
if (files != null) {
Iterator<FileItem> iter = files.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
if (!item.isFormField() && item.getSize() > 0) {
OutputStream out = null;
InputStream in=null;
System.out.println(deskPath+item.getName());
out = new BufferedOutputStream(new FileOutputStream(deskPath+item.getName()));
in= item.getInputStream();
//创建中转字节数组
byte[] buffer = new byte[1024];
int len=0;
while((len=in.read(buffer))!=-1){//in对象的read方法返回-1为 文件以读取完毕
out.write(buffer,0,len);
buffer = new byte[1024];
}
if(in!=null) {
in.close();
}
if(out!=null) {
out.close();
}
}
}
}
} catch (Exception e) {
}
}
logger.info("Y5_TestSOA start>>>>>>>>>>>>>>>>>");
logger.info("************** request *************");
logger.info("************** request *************");
logger.info("************** response *************");
logger.info("************** response *************");
logger.info("Y5_TestSOA end>>>>>>>>>>>>>>>>>");
System.out.println("Y5_TestSOA end");
return "成功!!!!!!!!!!!!!";
}
3;效果
本地桌面会出现接收的File