java 文件上传

/**
 * 
 */

//根据自己的喜好写的一个文件上传方法,喜欢这段代码的同学可以直接拷贝修改根据自己的意思来上传文件,如有不对的地方欢迎指正(采用流的形式)
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;

/**
 * @author admins
 * UploadFileTest.java
 * 下午7:55:31
 * 2018年3月25日
 */
public class UploadFileTest {
	
	
	
	public static void testUploadFile() throws Exception{
		long s=System.currentTimeMillis();
		
		String fileName = "E://logs//IMG_2350.JPG‪";
		
		
		int fileLength = fileName.lastIndexOf("//")+1;
		fileName = fileName.substring(fileLength);
		System.out.println(fileName);
		String fileNameNew = System.currentTimeMillis()+fileName.replaceAll("/", "");
		System.out.println("新文件名字"+fileNameNew);
		String newsFile = System.currentTimeMillis()+fileName.replaceAll("/", "\\\\"); 
		
		System.out.println(newsFile);
		
		File file = new File("E:/TestFile");
		if(!file.exists()){
			System.out.println("判断是否存在文件");
			file.mkdir();
		}
		   DiskFileItemFactory factory = new DiskFileItemFactory();
		   //设置向硬盘写数据时所用的缓冲区的大小,此处为4K
		   factory.setSizeThreshold(4*1024); 
		   //设置临时目录
		   factory.setRepository(file);
		
		FileUpload fileup = new FileUpload(factory);
		fileup.setFileSizeMax(1024);
		fileup.setHeaderEncoding("UTF-8"); 

		
		int len=0;
        byte[] buffer=new byte[1024];
        FileInputStream fis =new FileInputStream("E://logs//IMG_2350.JPG");
        FileChannel fileCh =null;
        fileCh = fis.getChannel();//文件大小
        System.out.println("文件大小:"+fileCh.size()/1024);
    	String path =file.getPath()+"\\"+fileNameNew; //file + "\\" + fileName
        FileOutputStream out = new FileOutputStream(path);
		while((len=fis.read(buffer))!=-1){
			out.write(buffer,0,len);//文件写入
		}
		String paths =file.getPath()+"\\"+fileName;
		fis.close();
		out.close();
	
		System.out.println("文件路径为"+file.getPath()+"\\"+fileNameNew);
		//fileItem.write(new File(file.getPath()+"\\"+"2017年上半年数据库系统工程师下午案例分析真题及答案解析.pdf"));
		long e=System.currentTimeMillis();
		System.out.println("文件上传毫秒数"+(e-s));//秒数
	}
	
	
	
	
	
	

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		testUploadFile();
	}

}
//打印的结果
/IMG_2350.JPG‪
新文件名字1521993618019IMG_2350.JPG‪
1521993618021\IMG_2350.JPG‪
文件大小:5034
文件路径为E:\TestFile\1521993618019IMG_2350.JPG‪
文件上传毫秒数35


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值