JFinal3.0快速上手,Controller之文件操作(二十六)

嗨,亲爱的小伙伴们!炎炎夏日你们还在坚持写代码么?还是选择了空调、沙发、葛优躺?今天我们将一起学习关于文件上传下载的一些小技巧。

一、getFile文件上传

JFinal让文件上传变得更加简单,几行代码调用就能完成文件上传功能。在文件上传的表单中一定要加上enctype="multipart/form-data",否则不能正常完成上传任务。这个属性其实是改变了表单的MIME编码,让表单支持二进制数据的传输。

1、编写html页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传Demo</title>
</head>
<body>
    <!--上传附件--->
    <form action="/up/upLoadTest" method="post" enctype="multipart/form-data">
        <label>请选择上传文件:</label><input type="file" name="userList" />
        <button type="submit">上传</button>
    </form>

    <!--下载文件-->
    <a href="/up/downLoadTest">下载</a>
</body>
</html>
2、编写服务端代码

这边因为代码不是很多,所以就直接一下看。需要注意的地方会给予提示。

package com.demo.up;

import java.io.File;
import com.jfinal.core.Controller;
import com.jfinal.kit.FileKit;
import com.jfinal.kit.PathKit;

/**
 * 
 * @ClassName:  UpLoadTest   
 * @Description:文件的上传与下载演示Demo 
 * @author: sugar Ye
 * @date:   2017年7月25日 上午10:20:39 
 * @Copyright: 2017 www.yetangtang.com Inc. All rights reserved. 
 */

public class UpLoadTest extends Controller {
    
    /**
     * @Title: index 
     * @Description:  默认渲染方法        
     * @return: void      
     */
    public void index(){
        render("upLoad.html");
    }
    
    /**
     * 
     * @Title: upLoadTest   
     * @Description:最简单文件的上传 
     * @param: null      
     * @return: void      
     */
    public void upLoadTest(){
        //调用上传方法
        getFile();
        //提示
        renderText("upload...");
    }
    
    /**
     * @Title: downLoadTest   
     * @Description: 根据文件路径下载(删除)文件  
     * @param: 测试没传参,实际情况自行调整      
     * @return: void
     */
    public void downLoadTest(){
        //获取路径
        String the_path=PathKit.getWebRootPath()+"\\upload\\psb.jpg";
        
        //创建文件对象
        File file=new File(the_path);
        
        //删除文件
        //FileKit.delete(file);
        
        //下载文件
        renderFile(file);
    }
}

其实关于文件上传这一块是非常的简单的,没有什么特别要去讲的。当然还是有一点需要注意的。那就是当表单中既有正常的表单数据,又有附件的时候,需要先调用** getFile 系列方法,然后才能去调用getPara **系列方法,否则获取不到参数信息。这点要切记。

二、拓展阅读

这是关于文件删除的源码,也是非常的清晰。小伙伴们有时间可以多看看总会有所收获。

package com.jfinal.kit;

import java.io.File;

/**
 * FileKit.
 */
public class FileKit {
    public static void delete(File file) {
        if (file != null && file.exists()) {
            if (file.isFile()) {
                file.delete();
            }
            else if (file.isDirectory()) {
                File files[] = file.listFiles();
                for (int i=0; i<files.length; i++) {
                    delete(files[i]);
                }
            }
            file.delete();
        }
    }
}

三、爱心小贴士

前方高能,对于多文件的上传可以是用getFiles()系列方法,同样轻松。其他精彩技能留给小伙伴们自己去发现。

PS:祝大家学习愉快!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值