文件下载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. IIS的启动与停止命令

    IIS的启动与停止命令 IIS启动 net start w3svc IIS停止 net stop iisreset DOS下IIS服务命令: 可以通过iisreset /?命令来查看 iisreset ...

  2. HttpClient 上传图片

    Image image = Image.FromFile(@"F:\image2\DSC02028.JPG"); var data = ImageToByteArray(image ...

  3. 执行代码出现ImportError:attempted relative import with no known parent package

    前言 在这篇文章中,我将会解析 ImportError: attempted relative import with no known parent package 这个异常的原因.当你在运行的py ...

  4. 语音识别传统方法(GMM+HMM+NGRAM)概述

    春节后到现在近两个月了,没有更新博客,主要是因为工作的关注点正从传统语音(语音通信)转向智能语音(语音识别).部门起了个新项目,要用到语音识别(准备基于Kaldi来做).我们之前做的传统音频已基本成熟 ...

  5. win10 solidity开发环境搭建

    1. 软件安装 1) 安装nodejs 安装完成后将node.exe所在路径加入环境变量PATH中,以便在cmd命令行中直接使用node和npm命令 下面的操作在git bash下进行 2) 安装so ...

  6. Java可视化日历(Date类、DATe Format类、Calendar类综合运用),开发可视化日历小程序

    Java时间日期类综合运用,开发可视化日历小程序 由键盘输入指定格式的日期,打印这个月的日历 1.代码 import java.text.DateFormat; import java.text.Pa ...

  7. spark2.1源码分析4:spark-network-common模块的设计原理

    spark-network-common模块底层使用netty作为通讯框架,可以实现rpc消息.数据块和数据流的传输. Message类图: 所有request消息都是RequestMessage的子 ...

  8. html 5 dialog标签:定义特殊术语或短语

    html5中<dialog>标签作用是定义特殊术语或短语,这里主机吧详细介绍下<dialog>标签用法.<dialog>标签属性以及<dialog>标签 ...

  9. TCP流量控制

    TCP的流量控制,是为了更好的传输数据,控制流量不要发送太快而至于接收端没有足够的缓存的接收. 利用滑动窗口,可以很方便的控制传输 rwnd:可以控制接收窗口大小.ACK代表确认位,ack代表确认字段 ...

  10. 开发环境 pyenv

    pyeny githup地址:https://github.com/pyenv/pyenv/ 安装时使用pyeny提供安装工具进行安装 githup 地址:https://github.com/pye ...