【java】文件上传

一、前言

      在项目中遇到了上传文件的功能,虽然这个功能还是比较思路清楚的,在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);

    }

四、小结

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

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你个佬六

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值