Webprojektdatei herunterladen

In Webprojekten ist es unvermeidlich, Datei-Downloads und -Uploads zu entwerfen. Anwendungen, die häufige Datei-Uploads und -Downloads verwenden, müssen sich auf Datenbanken verlassen, um bestimmte Speicherorte zu speichern. Bei Anwendungen, die seltener hoch- und heruntergeladen werden, müssen Sie die Dateien nur in der Datei ablegen Ressourcenverzeichnis. In diesem Fall müssen wir wissen, wie man den Dateipfad unter der Ressource herunterlädt und erhält.

 

Rufen Sie Dateien ab, die im Verzeichnis „resource/static“ abgelegt sind

Verwenden Sie die folgende Methode in der SprintBoot-Jar-Paketumgebung. Persönliche Tests sind wirksam

 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		// 获取远程服务器IP和端口
		try {
			//获取所有匹配的文件
            Resource[] resources = resolver.getResources("static/images/faceSearch/*.*");
            for(Resource resource : resources) {
                //获得文件流,因为在jar文件中,不能直接通过文件资源路径拿到文件,但是可以在jar包中拿到文件流
                InputStream stream = resource.getInputStream();
                if (log.isInfoEnabled()) {
                	log.info("读取的文件流  [" + stream + "]");
                }
                String targetFilePath =env.getProperty("faceSearchDemo.faceSerachPics")+resource.getFilename();
                if (log.isInfoEnabled()) {
                	log.info("放置位置  [" + targetFilePath + "]");
                }
                File ttfFile = new File(targetFilePath);
                if(!ttfFile.getParentFile().exists()) {
                	ttfFile.getParentFile().mkdir();
                }
                FileUtils.copyInputStreamToFile(stream, ttfFile);
            }
		}catch (Exception e) {
			log.error(e.getMessage());
			e.printStackTrace();
		}	

Verwenden Sie für in Kriegspaketen verpackte Anwendungen die folgende Methode:

File file = ResourceUtils.getFile("classpath:static/images/faceSearch");
 if (file.exists()) {
	File[] files = file.listFiles();
	List<String> imageList = new ArrayList<>();
	if (files != null) {
		for(File fileC :files) {
			imageList.add(fileC.getName());
		}
	}
model.addAttribute("faceSerachImgList", imageList);

Beispiel für den Download einer SpringBoot-Datei

Front-End-Code

<body>
<form class="layui-form" id="instructions">
	
   <div class="layui-form-item">
    <div class="layui-input-block">
	<a href="/instructionsDownload">使用说明书下载</a> 
    </div>
  </div>
  </form>
</body>

Backend-Code, die Datei wird im Verzeichnis „resource/static/instructions/test tool help document.docx“ abgelegt. Bitte beachten Sie, dass die Ressource aus dem Pfad von getResource() entfernt wird.

@GetMapping("/instructionsDownload")
    public String downloadFile(HttpServletRequest request, HttpServletResponse response) throws IOException{
		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		Resource resource= resolver.getResource("static/instructions/测试工具帮助文档.docx");
		String fileName = "测试工具帮助文档.docx";
        if (fileName != null) {
        	File file = new File("static/instructions/"+fileName);
            if (resource.exists()) {
                response.setContentType("application/force-download");
              //初始代码:response.addHeader("Content-Disposition","attachment;fileName=" +fileName);
              response.addHeader("Content-Disposition","attachment;fileName=" +new String(fileName.getBytes("UTF-8"),"iso-8859-1"));

//              response.addHeader("Content-Disposition","attachment;fileName=" +fileName);
                byte[] buffer = new byte[1024];
                InputStream fis = null;
                BufferedInputStream bis = null;
                try {
                    fis =  resource.getInputStream();
                    bis = new BufferedInputStream(fis);
                    OutputStream os = response.getOutputStream();
                    int i = bis.read(buffer);
                    while (i != -1) {
                        os.write(buffer, 0, i);
                        i = bis.read(buffer);
                    }
                    System.out.println("下载成功...");
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (bis != null) 
                    	bis.close();
                    if (fis != null) 
                        fis.close();
                }
            }
        }
        return null;
    }

Dieser Artikel ist sehr gut geschrieben und der Blog des Autors ist auch sehr gut. Es wäre schade, kein Buch zu veröffentlichen.

https://www.cnblogs.com/xdp-gacl/p/4200090.html

Sie können auch aus diesem Artikel lernen

https://blog.csdn.net/lq15310444798/article/details/78770192

Supongo que te gusta

Origin blog.csdn.net/u010445301/article/details/84569551
Recomendado
Clasificación