文件下载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. php使用select语句查询数据信息

    <html> <head> <title>Finding User</title> </head> <body> <h2& ...

  2. 一些关于three.js的摘抄笔记

    加载多个geometry的方式: (可以利用three.js自带convert_obj_three.py文件将obj文件转换成json文件) function loadModel() { loader ...

  3. python基础知识16---函数补充

    一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...

  4. Read The Docs搭建

    #!/bin/sh ########################### base ###################### yum -y update yum -y install yum-u ...

  5. JVM垃圾回收器

    JVM堆内存 -Xms和-Xmx:用于设置堆内存的大小 -XX:NewSize和-XX:MaxNewSize :用于设置年轻代的大小,建议设为整个堆大小的1/3或者1/4,两个值设为一样大. -XX: ...

  6. oracle_hc.sql

    select event,count(1) from gv$session group by event order by 2;exec dbms_workload_repository.create ...

  7. Flume概念与原理、与Kafka优势对比《转》

    https://blog.csdn.net/gyshun/article/details/79710534

  8. 打包时,node内存溢出问题解决方法

    在使用npm run build打包时,遇到node内存溢出问题. 网上查找到的决绝方案.解决方案一: 安装increase-memory-limit插件,扩大node的内存限制 但是,这个解决方案在 ...

  9. python-web自动化:下拉列表操作

    非select/option元素: 1.触发下拉列表出现 2.等待下拉列表中的元素出现,然后进行选择元素即可. select/option元素: 下拉框操作-Select类selenium提供Sele ...

  10. Android 开发 音视频从入门到提高 任务列表 转载

    <Android 音视频从入门到提高 —— 任务列表> 1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 Vi ...