1.上传 cxf rest 接口 图片转成二进制 保存到mysql 数据库的数据类型选择 blob
@POST
@Path("/uploadimagebyte")
@Consumes("multipart/form-data")
public Response downloadFileByForm(
@Multipart(value = "id", type = "text/plain") String id,
@Multipart(value = "name", type = "text/plain") String name,
@Multipart(value = "file", type = "image/png") Attachment image);
@Override
public Response downloadFileByForm(
@Multipart(value = "id", type = "text/plain") String id,
@Multipart(value = "name", type = "text/plain") String name,
@Multipart(value = "file", type = "image/png") Attachment image) {
final int max_upsize = 200 * 1024; // 头像最大文件上传大小
final int max_size = 60 * 1024; // 头像最大文件大小
final int max_height = 600;
final int max_weight = 600;
try {
// 将图片压缩并装入byte
Image jimage = ImageIO
.read(image.getDataHandler().getInputStream());
int[] size = ImageUtil.getSize(max_weight, max_height, jimage);
byte[] pic_bytes = ImageUtil.resize(size[0], size[1], 1f, jimage);
System.out.println("photo size=" + pic_bytes.length);
// 大小判断
if (pic_bytes == null || pic_bytes.length > max_size) {
// 不符合的话可以在这里返回 失败
// 比如:
// ResponseBuilder response = Response.status(500);
// return response.build();
}
// 这里数据库入库
// 构造Response
} catch (Exception e) {
// TODO: handle exception
}
ResponseBuilder response = Response.ok();
return response.build();
}
引用的各种package
import java.awt.Image;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
import javax.activation.DataHandler;
import javax.imageio.ImageIO;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.BeanParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.Multipart;
import org.json.JSONObject;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.servlet.support.RequestContextUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
2. 下载 保存图片 二进制转图片
这里要用GET
@GET
@Path(