文件下载Controller

@RequestMapping("/fileDownLoad")
 public ResponseEntity<byte[]> fileDownLoad(HttpServletRequest request) throws Exception{
  
   String downloadFilePath="D:\\Data\\Download";//从我们的上传文件夹中去取
         String filename = "SocketClient-Android-Of-Final-Assignment.apk";
         File file = new File(downloadFilePath+File.separator+filename);//新建一个文件
        
         HttpHeaders headers = new HttpHeaders();//http头信息
        
         String downloadFileName = new String(filename.getBytes("UTF-8"),"iso-8859-1");//设置编码
        
         headers.setContentDispositionFormData("attachment", downloadFileName);
        
         headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        
         //MediaType:互联网媒介类型  contentType:具体请求中的媒体类型信息
        
         return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers,HttpStatus.CREATED);
        
 }

文件夹内容监听和文件上传

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
 
public class FileListener {
    public static void main(String[] args) throws Exception {
        File directory = new File("H:/test");
        // 轮询间隔 5 秒
        long interval = TimeUnit.SECONDS.toMillis(5);
        // 创建一个文件观察器用于处理文件的格式
        FileAlterationObserver observer = new FileAlterationObserver(directory, FileFilterUtils.and(
        FileFilterUtils.fileFileFilter(),FileFilterUtils.suffixFileFilter(".txt")));
        //设置文件变化监听器
        observer.addListener(new MyFileListener());
        FileAlterationMonitor monitor = new FileAlterationMonitor(interval,observer);
        monitor.start();
    }
   
}
final class MyFileListener implements FileAlterationListener{
    @Override
    public void onDirectoryChange(File arg0) {
        System.out.println("文件目录发生改变!!!");
       
    }
    @Override
    public void onDirectoryCreate(File arg0) {
        System.out.println("文件目录创建成功!!!");
    }
    @Override
    public void onDirectoryDelete(File arg0) {
        System.out.println("文件目录已经删除!!!");
       
    }
    @Override
    public void onFileChange(File arg0) {
        System.out.println("文件发生改变!!!");
       
    }
    @Override
    public void onFileCreate(File arg0) {
     File arg1=arg0;
     System.out.println(arg1);
      InputStream in = null;
         OutputStream out = null;
     try {
 
        String srcPath = arg0.toString();
        File parentDir = new File("\\\\192.168.1.104\\test");
        File targetPath = new File(parentDir,   srcPath.substring(srcPath.lastIndexOf("\\")));
        in = new FileInputStream(srcPath);
         out = new FileOutputStream(targetPath);
     
       
            byte[] bs = new byte[1024];
            int len = -1;
            while((len = in.read(bs)) != -1) {
                out.write(bs, 0, len);
            }}catch(Exception e){
          e.printStackTrace();
         }
         
        finally {
            try {
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println("上传成功!!");
        System.out.println("文件创建成功!!!");
       
    }
    @Override
    public void onFileDelete(File arg0) {
        System.out.println("文件删除成功!!!");
       
    }
    @Override
    public void onStart(FileAlterationObserver arg0) {
        System.out.println("开始!!!");
       
    }
    @Override
    public void onStop(FileAlterationObserver arg0) {
        System.out.println("停止!!!");
       
    }
   
}
运行程序通过url实现文件下载
public static void downloadHttpUrl(String url, String dir, String fileName) {
  try {
   URL httpurl = new URL(url);
   File dirfile = new File(dir); 
         if (!dirfile.exists()) { 
          dirfile.mkdirs();
         }
   FileUtils.copyURLToFile(httpurl, new File(dir+fileName));
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

文件下载Controller,文件夹内容监听,文件上传,运行程序通过url实现文件下载的更多相关文章

  1. 基于element ui 实现七牛云自定义key上传文件,并监听更新上传进度

    借助上传Upload 上传组件的 http-request 覆盖默认的上传行为,可以自定义上传的实现 <el-upload multiple ref="sliderUpload&quo ...

  2. 监听 input上传文件, 获取文件名称,

    <div class="import-box pr" > <span class="model-address-txt">导入文件:&l ...

  3. java:(监听,上传,下载)

    1.监听: index.jsp: <%@ page language="java" import="java.util.*" pageEncoding=& ...

  4. java 监听文件或文件夹变化

    今天遇到一个新需求,当从服务器下载文件后用指定的本地程序打开,不知道何时文件下载完成,只能考虑监听文件夹,当有新文件创建的时候打开指定程序. 在此给出一个完整的下载和打开过程: 1.下载文件 jsp页 ...

  5. 取得文件夹内容信息(使用IShellFolder接口)

    翻译自MSDN 2005 -> Win32 和 COM 开发 -> User Interface -> Windows User Experience -> Windows S ...

  6. c# 监听文件夹动作

    static FileSystemWatcher watcher = new FileSystemWatcher(); /// <summary>        /// 初始化监听     ...

  7. Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: 对文件系统的访问提供了全面的支持 提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的Ja ...

  8. java 监听文件或者文件夹变化的几种方式

    1.log4j的实现的文件内容变化监听 package com.jp.filemonitor; import org.apache.log4j.helpers.FileWatchdog; public ...

  9. 【转载】java 监听文件或者文件夹变化的几种方式

    1.log4j的实现的文件内容变化监听 package com.jp.filemonitor; import org.apache.log4j.helpers.FileWatchdog; public ...

随机推荐

  1. Laravel笔记--Eloquent 模型

    Eloquent 模型 默认继承use Illuminate\Database\Eloquent\Model类. 数据表名称与模型名称约定: 数据库的表名一般使用“蛇形命名法”命名.蛇形命名法要求单词 ...

  2. ubutun 下配置php和postgresql

    安装完成后,检查PHP扩展. php -m | grep pdo_pgsql php -m 和phpinfo应该是不同的配置文件, 你在php -m 中能看到的话, 说明你只在php -i|grup ...

  3. Windows下安装Spark环境

    根据博客总结 https://blog.csdn.net/nxw_tsp/article/details/78281533 需要的安装软件可以在网盘下载: 链接:https://pan.baidu.c ...

  4. SpringBoot与SpringCloud的版本对应详细版

    大版本对应: Spring Boot Spring Cloud 1.2.x Angel版本 1.3.x Brixton版本 1.4.x stripes Camden版本 1.5.x Dalston版本 ...

  5. python-setuptool安装

    安装setuptools时报error: ”RuntimeError: Compression requires the (missing) zlib module“ 解决办法: yum安装zlib和 ...

  6. CFile、CStdioFile、FILE和其他文件操作(转+总结)

    CFile.CStdioFile.FILE和其他文件操作(转+总结) 2010-04-10 20:36:33|  分类: VC++|举报|字号 订阅     下载LOFTER我的照片书  |     ...

  7. 基于STM8的ADC读取---STM8-第四章

    1. 综诉 想学会如何在STM8上使用ADC这个功能,我们先得了解单片机中ADC究竟是什么. ADC是模拟信号转成数值信号,单片机只能识别TTL电平,其实就是 1 或者 0 ,但是如果我们给它一个3. ...

  8. MySQL 之 MHA + ProxySQL + keepalived 实现读写分离,高可用(三)

    设置Keepalived VIP切换邮件告警 修改keepalived.conf配置: [root@server01 keepalived]# cat keepalived.conf ! Config ...

  9. Sping Cloud项目启动报A component required a bean of type 'com.tianyan.bbc.dao.SecurityUserBaseMapper' that could not be found.

    项目构建正常,启动和Debug报以下错误: Error starting ApplicationContext. To display the conditions report re-run you ...

  10. 刘志梅201771010115.《面向对象程序设计(java)》第十四周学习总结

    实验十四  Swing图形界面组件 实验时间 20178-11-29 1.实验目的与要求 (1)设计模式:反复使用.经过分类编目的.代码设计经验的总结. 在Alexander的模式分类和软件模式的分类 ...