文件下载功能

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;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值