Java下载接口
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
@RestController
@RequestMapping("/file")
@Api(value = "提供文件的下载",description = "提供文件的下载")
public class DownController {
@GetMapping("/download")
@ApiOperation("下载吧")
@ApiImplicitParams({
@ApiImplicitParam(name = "name",value = "文件名",required = true,dataType = "object")
})
public String download(@RequestParam("name")String name, HttpServletResponse response) throws Exception {
response.setCharacterEncoding("utf-8");
OutputStream os=null;
InputStream inputStream = null;
try {
String path = "i:\\" + name + ".zip";
File f = new File(path);
response.setHeader("Content-Disposition", "attachment;fileName="
+ new String((name + ".zip").getBytes("UTF-8"),"iso-8859-1"));
response.addHeader("Content-Length", "" + f.length());
response.setContentType("application/x-msdownload;charset=UTF-8");
inputStream = new FileInputStream(path);
os = response.getOutputStream();
byte[] b = new byte[2048];
int length;
while ((length = inputStream.read(b)) > 0) {
os.write(b, 0, length);
}
os.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
try{
inputStream.close();
os.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
return null;
}
}