java怎么查看发出去的包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么查看发出去的包相关的知识,希望对你有一定的参考价值。
打开CSDN APPCopyright © 1999-2020, CSDN.NET, All Rights Reserved
打开APP
tim0018
关注
java查看已上传的文件夹_SpringMVC文件上传及查看的示例代码 原创
2021-03-02 02:16:41
tim0018
码龄3年
关注
写在前面
谈到文件上传,首先要说业务逻辑,如果上传的文件大家都可以看(比如广告或者首页的banner)等,那么我们就把图片放在静态资源区(与css,js一样的位置)中,如果文件是受保护的(像用户只能查看自己上传的照片),那么我们就把它存放在服务器中的某个专门存放图片的位置。
本例分别展示了存放在两个位置的上传文件的方法,上传之后,作为延伸,还添加了查看上传的文件以及下载已经上传的文件的功能。
准备工作
配置SpringMVC,导入commons包
在mvc-servlet.xml中配置文件上传解析器
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
存放在静态资源区
1、存放位置:
存放在项目中,所以路径为相对项目的路径。
/yourproject/webapp/static/img
2、配置响应的handler
@Controller
public class UploadController
@GetMapping("/upload")
public String UploadHandler()
return "upload";
@PostMapping("/upload/static")
public void wriToStatic(HttpServletRequest request,
RedirectAttributes redirectAttributes,
@RequestParam("fileName") MultipartFile file)
if(!file.isEmpty())
//获取目标文件夹
String path = request.getServletContext().getRealPath("/") + "static/img/";
//获取用户上传的源文件名
String fileName = file.getOriginalFileName();
//新建文件
File file1 = new File(path, fileName);
//将文件写入
file.transferTo(file1);
redirectAttributes.addFlashAttribute("message","upload to static success");
return "redirect:/upload";
else
redirectAttributes.addFlashAttribute("message","upload file can not be empty");
return "redirect:/upload";
存放在服务器
1、本例存放位置:
存放在服务器某个位置,与项目无关,所以地址为绝对路径。
/Users/mac/Desktop/imgtemp/, 为目录的绝对路径。
2、配置响应的handler
...
@PostMapping("/upload/disk")
public String writeToDisk(HttpServletRequest request,
@RequestParam("fileName") MultipartFile file,
RedirectAttributes redirectAttributes)
if(!file.isEmpty())
//获取源文件名
String fileName = file.getOriginalFileName();
//获取保存文件文件夹路径
String path = "/Users/mac/Desktop/imgtemp/";
//新建文件
File file1 = new File(path,fileName);
//写入文件
file.transferTo(file1);
...
延伸部分(文件的查看及下载)
由于响应是要以流的形式传递文件,我们需要正确的设置响应的MIMIE类型才能被浏览器正确的解析,应用程序文件的默认MIMIE类型为 application/octet-stream,MIME设置为该值后,浏览器不会自动执行或询问执行这类文件,会以对待附件的形式直接将文件下载至本地。
更多关于MIMIE的解读请查看这篇文章
如果我们如果想自定义下载文件的名字,那么就需要设置Content-Disposition消息。
Content-Disposition 消息头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者页面的一部分),还是以附件的形式下载并保存到本地。
更过关于Content-Disposition的解读请查看这篇文章
...
@GetMapping("/download/byDefault")
public void getImgByDefault(@RequestParam String fileName,
@RequestParam(required=false,defaultValue="") String saveName),
HttpServletResponse response
if(StringUtils.isEmpty(fileName))
response.sendError(404);
return;
//文件存放的路径
String path = "/Users/mac/Desktop/imgtemp/";
//新建文件
File file = new File(path,fileName);
if(!file.exists())
response.sendError(404);
return;
//如果请求参数saveName不为空,进行文件的下载
if(!StringUtils.isEmpty(saveName))
//设置响应长度
response.setContentLength((int)file.length());
//设置响应的MIME类型为application/octet-stream
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
saveName = new String(saveName.getBytes("UTF-8"),"ISO8859-1");
//设置content-disposition为attachment;fileName=saveName
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\""+saveName+"\"");
//读取文件
InputStream is = new FileInputStream(file);
OutputStream os = response.getOutputStream();
//将文件以流的形式输出
IOUtils.copy(is,os);
os.flush();
os.close();
is.close();
我们还可以使用SpringMVC自带的 ByteArrayHttpMessageConverter 转化器来将文件输出,该转换器实现 HttpMessageConverter 接口。可读取所有MIME的请求信息,响应信息的MIME为 application/octet-stream
...
@GetMapping("/download/byConvert")
public HttpEntity getImgByConvert(@RequestParam String fileName,
@RequestParam(required=false,defaultValue="") String saveName)
if(StringUtils.isEmpty(fileName))
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
String path = "/Users/mac/Desktop/imgtemp/";
File file = new File(path,fileName);
if(!file.exists())
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
HttpHeaders headers = new HttpHeaders();
if(!StringUtils.isEmpty(saveName))
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
headers.setContentLength(file.length());
saveName = new Sting(saveName.getBytes("UTF-8"),"ISO8859-1");
headers.add(HttpHeaders.CONTENT_DISPOSITION,"attachment;fileName=\"" + saveName + "\"");
else
headers.setContentType(MediaType.IMAGE_PNG);
return new HttpEntity<>(FileCopyUtils.copyToByteArray(file),headers);
upload.jsp
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
Document 参考技术A 1、首先我们先找到一个Java生成的Jar文件,把它存放在指定位置已方便查看。
2、然后右键点击Jar文件,选择打开方式,然后设定为压缩文件打开的方式,这时候我们就会看到桌面上的Jar文件变成了一个压缩包的图标。
3、然后我们双击桌面的Jar文件,就可以以压缩包的形式查看Jar文件里面的具体内容了。 参考技术B 1、打开以上网址,搜索fastjson
2、点击条目,选择对应版本
3、选择jar包,查看即可。
以上是关于java怎么查看发出去的包的主要内容,如果未能解决你的问题,请参考以下文章