【java】文件上传

来源:互联网 发布:单片机实训室建设方案 编辑:程序博客网 时间:2024/05/16 09:41

一、前言

      在项目中遇到了上传文件的功能,虽然这个功能还是比较思路清楚的,在java中Struts2已经为我们设计好了File这个类,所以我们需要做的就是把所需要的参数带进去获取到就行了。在本篇博客中,小编主要就讲解一下各个方法的实用,以及上传文件的流程。

二、核心思路

步骤

三、代码实现

      前台

<td class="ta_01" bgColor="#ffffff" colspan="3">            <!-- 文件上传-Ares-2016年12月8日16:51:02 -->            <input type="file" name="upload" /></td>



      后台的Action,这里要注意的是upload,和前台表单中的属性名字相同。

//文件上传需要的参数    private File upload;  //上传的文件  upload,和表单中的属性名字相同    private String uploadFileName;  //接收文件上传的文件名    private String uploadContextType; //接收文件上传的文件的MIME的类型    public void setUpload(File upload) {        this.upload = upload;    }    public void setUploadFileName(String uploadFileName) {        this.uploadFileName = uploadFileName;    }    public void setUploadContextType(String uploadContextType) {        this.uploadContextType = uploadContextType;    }    //保存商品方法    public String save() throws IOException{        //调用B层保存方法        Date time=new java.sql.Date(new java.util.Date().getTime());        product.setPdate(time);        if(upload!= null){            //获得文件上传的磁盘的绝对路径            String realPath = ServletActionContext.getServletContext().getRealPath("/products");            //创建一个文件            File diskFile = new File(realPath +"//" +uploadFileName);            //文件上传            FileUtils.copyFile(upload, diskFile);            product.setImage("products/"+uploadFileName);        }        productService.save(product);        return "saveSuccess";    }



      B层

//B层保存商品的方法    public void save(Product product) {        productDao.save(product);    }



      D层

    //D层保存商品的方法    public void save(Product product) {        this.getHibernateTemplate().save(product);    }

四、小结

      小编通过这个只是实现了上传的功能,但是具体的一些问题比如,文件名重名,目录分离等还是需要在后面的操作中完成,这些内容小编会在后面的博客中向大家分享出来,最后会整理出一个相对比较完整,功能全的上传的类,然后分享给大家,另外有什么不足的地方还是请各位指出。

2 0
原创粉丝点击