JavaWeb-SmartUpload的封装类

本文介绍了一个用于JavaWeb环境的SmartUpload文件上传与处理的封装类,包括初始化、参数设置、文件上传、后缀名检查、获取文件路径以及保存文件等功能。通过封装,简化了文件上传的复杂操作,提高了开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

JavaWeb-SmartUpload的封装类

package com.mrcode.include;
import com.jspsmart.upload.SmartUpload;
import java.util.ArrayList;

import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.Request;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUploadException;
import javax.servlet.ServletException;
import java.io.IOException;
import java.sql.SQLException;

public class SmartUploadFiles
{
 private SmartUpload smartUpload = null;
 //private ArrayList[] suffix = new ArrayList[]{new String("gif"), new String("jpg"), new String("jpeg")}; //不兼容的类型
 //private ArrayList<String>[] suffix = new ArrayList<String>[]{new String("gif"), new String("jpg"), new String("jpeg")};//不兼容的类型
 private ArrayList suffix = new ArrayList();
 private ArrayList filepaths = new ArrayList();
 
 public SmartUploadFiles(SmartUpload smartUpload)
 {
  this.smartUpload = smartUpload;
 }
 /*
 //第一步:smartUpload.initialize必须首先执行,
 public void initUpload(ServletConfig servletConfig, HttpServletRequest request, HttpServletResponse response)
 throws ServletException
 {
  smartUpload.initialize(servletConfig, request, response);
 }
 */
 public void setParameter(long filesize, String deniedfiles)
 throws ServletException, IOException, SQLException
 {
  smartUpload.setMaxFileSize(filesize);
  smartUpload.setDeniedFilesList(deniedfiles);
 }
 //第二步:smartUpload.upload()
 public void upload()
 throws ServletException, IOException, SmartUploadException
 {
  smartUpload.upload();
 }
 
 public Request getSmartUploadRequest()
 {
  return smartUpload.getRequest();
 }
 //填充文件后缀名
 public void setSuffix()
 {
  suffix.add(new String("gif"));
  suffix.add(new String("jpg"));
  suffix.add(new String("jpeg"));
 }
 
 //后缀名的检查的方式需要借用
 public boolean isHaveSuffix()
 {
  boolean isSuffix = false;
  for(int i=0; i<smartUpload.getFiles().getCount(); i++)
  {
   File file = smartUpload.getFiles().getFile(i);
   
   if(file.isMissing())
   {
    continue;
   }
   int count = 0;
   for(int j=0; j<suffix.size(); j++)
   {
    System.out.println(suffix.size());
    System.out.println(suffix.get(j));
    System.out.println(file.getFileName().substring(file.getFileName().lastIndexOf('.') + 1));
    //if(suffix.get(j) != file.getFileName().substring(file.getFileName().lastIndexOf('.') + 1))
    if(!suffix.get(j).equals(file.getFileName().substring(file.getFileName().lastIndexOf('.') + 1)))
    {
     count++;
     System.out.println(count);
     //if((count.toString()).equals((suffix.size()).toString()))
     if(suffix.size() == count)
     {
      System.out.println("break");
      //break;
      isSuffix = false;
      return isSuffix;
     }
     continue;
    }
    isSuffix = true;
   }
  }
  return isSuffix;
 }
 
 public ArrayList getFilePaths(String savePath)
 {
  for(int i=0; i<smartUpload.getFiles().getCount(); i++)
  {
   File file = smartUpload.getFiles().getFile(i);
   
   if(file.isMissing())
   {
    continue;
   }
   //把上传的文件路径放进数组
   filepaths.add(savePath + file.getFileName());
  }
  return filepaths;
 }

 
 public void saveAs(String savepath)
 throws IOException
 {
  for(int i=0; i<smartUpload.getFiles().getCount(); i++)
  {
   File file = smartUpload.getFiles().getFile(i);
   
   if(file.isMissing())
   {
    continue;
   }
   /*
   int have = 0;
   for(int i=0; i<suffix.size(); i++)
   {
    if(suffix[i] != file.getFileName().substring(file.getFileName().lastIndexOf('.') + 1))
    {
     continue;
    }
    have = 1;
   }
   */
   //判断后缀名
   
   //把上传的文件路径放进数组
   //filepaths.add(savepath + file.getFileName());
   try
   {
    file.saveAs(savepath + file.getFileName());
   }
   catch(SmartUploadException e)
   {
    e.printStackTrace();
   }
  }
 }
 
}

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值