文件上传操作大小限制之我见

这个方法能尽量减少服务器上传文件操作的负担,虽然不能在上传前就给于判断大小。

1.给自己的文件设置2个值(类型试情况而定)
 size1  =  一个表示允许上传的文件大小 4*1024*1024  (4M)
 size2  =  一个表示允许写入的流大小 如 5*1024*1024  (5M)

2.然后再在输出流循环中设置一个最多循环次数 :
 最多循环次数 = size2 / 8192   (注:8192 是 byte[] buffer = new byte[8192] 中的8192相等 )
 我这里 4*1024*1024 / 8192 = 512
 让其上传的大小尽量小.......
 
3.最后输出完的时候判断一哈输出的文件大小(服务器本地)是否大于 size1 ,
 如果大就说明上传的文件超重!可以直接 myFile.delete()
 
 
例子代码 :

try{
 String upFilePath="d://kingsoft.iso";
 String myFilePath="d://one.iso";
 long size1=4*1024*1024;
 long size2=5*1024*1024;
 long count=size2/8192;//循环次数
 
 File upFile=new File(upFilePath);
 ByteArrayOutputStream baos = new ByteArrayOutputStream();
    InputStream stream = new FileInputStream(upFile);
 OutputStream bos = new FileOutputStream(myFilePath);
 
    int bytesRead = 0;
    byte[] buffer = new byte[8192];
    long i;
    for (i=0;((bytesRead = stream.read(buffer, 0, 8192)) != -1)&&i<count;i++) {
        bos.write(buffer, 0, bytesRead);
    }
    System.out.println ("   i = "+i);
    bos.close();
    File myFile=new File(myFilePath);
    if(myFile.length()>size1){  //4M
  //afile.delete(); //此处可删除上传不成功的文件 
  System.out.println ( "the file  size has a error!!!");
    }
    else{
  System.out.println ("The file has been written to ");
    }  
}catch(Exception e){
 e.printStackTrace();

还未定稿,尚待商榷!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值