文件上传、下载
来源:互联网 发布:大数据 授信模型 编辑:程序博客网 时间:2024/06/05 00:28
1、 文件下载
/**
* @description 文件下载* @param 文件请求对象
* @return
* @author
*/
@RequestMapping(value = "downloadFile")
@ResponseBody
public String downloadFile(HttpServletRequest request, HttpServletResponse response) {
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
//文件id
String fileId = DataUtils.nullToEmpty(request.getParameter("fileId")).trim();
if(!StringUtils.isBlank(fileId)){
OutputStream out = null;
InputStream inputStream = null;
HttpURLConnection con = null;
try
{
ResourceBundle bundle = ResourceBundle.getBundle("comm.config.application");
String filePath = bundle.getString("file.url");
URL url = new URL(filePath+"/downloadFile?fileId="+fileId);
con = (HttpURLConnection)url.openConnection();
response.setHeader("Content-Disposition",
con.getHeaderField("Content-Disposition"));
out = response.getOutputStream();
inputStream = con.getInputStream();
byte[] b = new byte[2048];
int length;
while ((length = inputStream.read(b)) > 0) {
out.write(b, 0, length);
}
}
catch (Exception e)
{
e.printStackTrace();
}finally{
try
{
if(null != out)
out.close();
if(null != inputStream)
inputStream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
return null;
}
2、文件保存服务器,然后上传
(1)
/**
* 保存文件到服务器
* @param request
* @param response
* @return
*/
private String saveFile(HttpServletRequest request, HttpServletResponse response){
MultipartFile file = null;
// 将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
MultipartHttpServletRequest multiRequest = null;
// 检查form中是否有enctype="multipart/form-data"
if (multipartResolver.isMultipart(request)) {
// 将request变成多部分request
// multiRequest =multipartResolver.resolveMultipart(request);
multiRequest = (MultipartHttpServletRequest) request;
Iterator iter = multiRequest.getFileNames();
while (iter.hasNext()) {
file = multiRequest.getFile(iter.next().toString());
multiRequest.getFileNames();
if (file != null) {
break;
}
}
}
;
// String fileName= request.getParameter("fileName");
String fileName = file.getOriginalFilename();
if (StringUtils.isEmpty(fileName)) {
return null;
}
File directory = new File("upload");
String filePath = null;
try {
filePath = directory.getCanonicalPath() + File.separator;
} catch (IOException e1) {
e1.printStackTrace();
}
// 判断文件夹是否存在,如果不存在则创建文件夹
File folder = new File(filePath);
if (!folder.exists()) {
folder.mkdirs();
}
filePath += fileName;
InputStream is = null;
try {
is = file.getInputStream();
} catch (IOException e2) {
e2.printStackTrace();
}
File newFile = new File(filePath);
OutputStream os = null;
try {
os = new FileOutputStream(newFile);
byte buffer[] = new byte[4 * 1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.flush();
return filePath;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
(2)
/**
* 文件上传</br>
* 必要参数 fileName、systemId、userCode、bussType
* @param request
* @param response
* @return
*/
@RequestMapping("/uploadFile")
@ResponseBody
public String uploadFile(HttpServletRequest request, HttpServletResponse response){
Map<String,String> map = new HashMap<>();
ResourceBundle bundle = ResourceBundle.getBundle("comm.config.application");
String fileServerURL = bundle.getString("file.url");
String result = null;
//当前登录用户信息
UserInfo user = (UserInfo)request.getAttribute(ConstantUtil.USER_ATTRIBE_NAME);
//保存文件到服务器
String filePath=saveFile(request,response);
if(StringUtils.isEmpty(filePath)){
return null;
}
String systemId= request.getParameter("systemId");
String userCode = user.getUserCode();
String bussType = request.getParameter("bussType");
map.put("systemId", systemId);
map.put("userCode", userCode);
map.put("bussType", bussType);
File file = new File(filePath);
try {
map.remove("filePath");
Map<String, String> fileResult = FileServerHelper.uploadFile(fileServerURL + "/uploadFile", file, map);
file.delete();
result = JSON.toJSONString(fileResult);
} catch (Exception e) {
e.printStackTrace();
}
LOGGER.info("系统生成文件上传到文件服务器响应信息:"+result);
file.delete();
return result;
}
- 上传文件 | 下载文件
- 文件上传与下载----上传
- 文件上传与下载--下载
- 文件上传及下载
- 文件上传及下载
- 文件上传及下载
- 文件上传及下载
- 文件上传及下载
- 文件上传 下载
- 文件上传与下载
- ftp文件下载、上传
- JSP文件下载、上传
- Socket 上传/下载文件
- ftp上传 下载文件
- 文件上传和下载
- 文件上传和下载
- 文件上传与下载
- 上传与下载文件
- QString、string和C字符串相互转换
- Django 使用 Celery 实现异步任务
- jmeter在桌面上打开
- 文件处理工具类
- Nginx详细安装部署教程
- 文件上传、下载
- 【智能医疗】美国医疗领域人工智能应用行业报告:人工智能与医疗健康双向驱动
- JDK介绍
- QMessageBox--消息对话框
- 文章标题
- 请求数据的封装类
- HTML5 本地存储是一个window 属性,包括localStorage 和 sessionStorage,
- json类型的字符串取值
- 在一个宽字节注入习题的情况下得到的知识集合