HTTP协议
Request
A request message from a client to a server includes, within the
first line of that message, the method to be applied to the resource,
the identifier of the resource, and the protocol version in use.
Request = Request-Line ; Section 5.1
*(( general-header ; Section 4.5
| request-header ; Section 5.3
| entity-header ) CRLF) ; Section 7.1
CRLF
[ message-body ] ; Section 4.3
文件下载功能
图片下载
package cn.tedu.controller;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/demo")
public class DemoController {
@RequestMapping("/download.do")
@ResponseBody
public byte[]download(HttpServletResponse response) throws IOException {
String file = "图片演示.png";
String name = URLEncoder.encode(file, "utf-8");
response.setContentType("image/png");
response.setHeader("Content-Disposition", "attachment; filename=\""+name+"\"");
byte[] data = createImage();
return data;
}
private byte[] createImage() throws IOException {
BufferedImage img = new BufferedImage(100, 50, BufferedImage.TYPE_3BYTE_BGR);
img.setRGB(50, 25, 0xffff00);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(img, "png", out);
out.close();
byte[] data = out.toByteArray();
return data;
}
}