package cn.stylefeng.guns.modular.system.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import javax.servlet.http.HttpServletResponse;
import cn.stylefeng.guns.core.common.constant.Const;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/webdownload")
public class WebDownloadController {
/**
* 返回文件
*/
@RequestMapping("/download")
public void download(@RequestParam(“fileId”) String fileId, HttpServletResponse response) {
String path = Const.File_Path + fileId;
try {
byte[] bytes = toByteArray(path);
response.getOutputStream().write(bytes);
} catch (Exception e) {
//如果找不到图片就返回一个默认图片
try {
response.sendRedirect(Const.File_Path+“admin.jpg”);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public byte[] toByteArray(String filename) {
File f = new File(filename);
if (!f.exists()) {
return null;
} else {
FileChannel channel = null;
FileInputStream fs = null;
try {
fs = new FileInputStream(f);
channel = fs.getChannel();
ByteBuffer byteBuffer = ByteBuffer.allocate((int)channel.size());
while(channel.read(byteBuffer) > 0) {
}
byte[] var5 = byteBuffer.array();
return var5;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
channel.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}