java语言将本地磁盘中的文件上传到项目路径下

package com.icss.saft.service;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;

@RestController
public class Controller2 {


    @RequestMapping(value = "from",method = RequestMethod.GET)
    public void upload() throws Exception {
         String url1 = "F:\\xml";

         String url2 = "E:\\Xmldemo\\src\\main\\webapp\\WEB-INF\\jsp\\20180419205900.xml";
         File file1 = new File(url2);
         if(!file1.exists()){
             file1.createNewFile();
         }else {
             StringBuffer buffer = new StringBuffer(url2);
             SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
             Date date = new Date();
             String dates = format.format(date);
             buffer.insert(16,dates);
             url2 = buffer.toString();
             file1 = new File(url2);
             file1.createNewFile();
         }

        File[] file = (new File(url1)).listFiles();
        for (int i = 0; i < file.length; i++) {
            if (file[i].isFile()) {
    
                //copyFile(file[i],new File(url2+file[i].getName()));
                copyFile(file[i],new File(url2));
            }
            if (file[i].isDirectory()) {
                String sourceDir=url1+File.separator+file[i].getName();
                String targetDir=url2+File.separator+file[i].getName();
                copyDirectiory(sourceDir, targetDir);
            }
        }
    }
    public static void copyFile(File sourceFile,File targetFile)
            throws IOException {
 
        FileInputStream input = new FileInputStream(sourceFile);
        BufferedInputStream inBuff=new BufferedInputStream(input);
        FileOutputStream output = new FileOutputStream(targetFile);
        BufferedOutputStream outBuff=new BufferedOutputStream(output);
        byte[] b = new byte[1024 * 5];
        int len;
        while ((len =inBuff.read(b)) != -1) {
            outBuff.write(b, 0, len);
        }
        outBuff.flush();
        inBuff.close();
        outBuff.close();
        output.close();
        input.close();
    }

    public static void copyDirectiory(String sourceDir, String targetDir)
            throws IOException {
       
        (new File(targetDir)).mkdirs();
  
        File[] file = (new File(sourceDir)).listFiles();
        for (int i = 0; i < file.length; i++) {
            if (file[i].isFile()) {
           
                File sourceFile=file[i];
         
                File targetFile=new
                        File(new File(targetDir).getAbsolutePath()
                        +File.separator+file[i].getName());
                copyFile(sourceFile,targetFile);
            }
            if (file[i].isDirectory()) {
   
                String dir1=sourceDir + "/" + file[i].getName();
   
                String dir2=targetDir + "/"+ file[i].getName();
                copyDirectiory(dir1, dir2);
            }
        }
    }
}

在上传到项目下时,要根据时间来命名上传的文件,下边这段代码为自动生成一个以时间命名的文件名字:

   if(!file1.exists()){
             file1.createNewFile();
         }else {
             StringBuffer buffer = new StringBuffer(url2);
             SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
             Date date = new Date();
             String dates = format.format(date);
             buffer.insert(16,dates);
             url2 = buffer.toString();
             file1 = new File(url2);
             file1.createNewFile();
         }

 

posted @ 2018-04-21 04:28  王小剑  阅读(10006)  评论(1编辑  收藏  举报