5.jfinal上传下载文件
来源:互联网 发布:最新网络歌曲下载 编辑:程序博客网 时间:2024/06/05 19:41
建立jfinal工程使用jetty运行
工程结构如下(注意要导入cosjar包)
DemoConfig.java类
package com.cjq.config;import com.cjq.controller.FileController;import com.jfinal.config.Constants;import com.jfinal.config.Handlers;import com.jfinal.config.Interceptors;import com.jfinal.config.JFinalConfig;import com.jfinal.config.Plugins;import com.jfinal.config.Routes;import com.jfinal.core.JFinal;import com.jfinal.plugin.redis.RedisPlugin;import com.jfinal.render.ViewType;public class DemoConfig extends JFinalConfig{ @Override public void configConstant(Constants arg0) { arg0.setViewType(ViewType.JSP); } @Override public void configHandler(Handlers arg0) { } @Override public void configInterceptor(Interceptors arg0) { } @Override public void configPlugin(Plugins arg0) { } @Override public void configRoute(Routes arg0) { arg0.add("file",FileController.class,"file"); } public static void main(String[] args) { JFinal.start("WebContent", 80, "/", 5); }}
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>jfinal_demo</display-name> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>com.cjq.config.DemoConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
FileService.java
package com.cjq.controller;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.channels.FileChannel;public class FileService { //文件拷贝 public void fileChannelCopy(File s, File t) { FileInputStream fi = null;//文件输入流 FileOutputStream fo = null;//文件输出流 FileChannel in = null; FileChannel out = null; try { fi = new FileInputStream(s); fo = new FileOutputStream(t); in = fi.getChannel();//获取读入的文件通道 out = fo.getChannel();//获取写出的文件通道 in.transferTo(0, in.size(), out);// 连接两个通道,从文件输入流读取数据到文件输出流 } catch (IOException e) { e.printStackTrace(); } finally { try { fi.close(); in.close(); fo.close(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }}
FileController.java
package com.cjq.controller;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Collections;import java.util.Date;import java.util.List;import java.util.UUID;import com.jfinal.core.Controller;import com.jfinal.kit.PathKit;import com.jfinal.upload.UploadFile;public class FileController extends Controller { public void index() { render("index.html"); } public void downfile() {//文件下载 File file = new File("G:\\Jfinal\\file\\test.png"); //本地的一张图片 if (file.exists()) { //如果文件存在 renderFile(file); } else { renderJson(); } } public void uploadFile() {//文件上传 UploadFile uploadFile = this.getFile();//获取前台上传文件对象 String fileName = uploadFile.getOriginalFileName();//获取文件名 File file = uploadFile.getFile();//获取文件对象 FileService fs = new FileService(); File t = new File("G:\\Jfinal\\file\\" + UUID.randomUUID().toString() + file.getName().substring(file.getName().lastIndexOf(".")));//设置本地上传文件对象(并重命名) try { t.createNewFile(); } catch (IOException e) { e.printStackTrace(); } fs.fileChannelCopy(file, t);//将上传的文件的数据拷贝到本地新建的文件 file.delete(); this.renderHtml("success,<a href=\"./\">back</a>"); }}
index.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><form action="/file/uploadFile" enctype="multipart/form-data" method="post"> <input type="file" name="file"/> <input type="submit"/></form><a href="/file/downfile">下载</a></body></html>
运行JfinalDemo类,打开浏览器访问http://localhost/file
点击选择文件上传,选择一个文件上传,我这里上传的是一张图片
点击打开
然后点提交
去本地目录下查看
点击上面页面back超链接,回到上一个地址,点击下载
(我下载的是G:\Jfinal\file\test.jpg的图片)
源码百度网盘链接:http://pan.baidu.com/s/1dFOWnp3 密码:n6au
阅读全文
0 0
- 5.jfinal上传下载文件
- jfinal 文件上传下载
- JFinal文件上传下载
- jfinal文件上传下载
- springMVC入门--5.文件上传下载
- 文件上传下载
- 文件上传下载
- 上传下载文件
- 文件上传下载
- 文件上传下载
- 文件上传下载
- 文件上传下载
- 文件上传下载
- 文件上传下载
- 上传下载文件
- 文件上传下载
- 文件上传下载
- 文件上传下载
- git 创建/删除本地/远程分支
- Springboot-系统异常统一处理(接口编程异常处理)
- 常用类的对比
- 【项目搭建】使用spring-boot进行REST风格的微服务开发入门
- nltk 中的 sents 和 words
- 5.jfinal上传下载文件
- leetcode 340. Longest Substring with At Most K Distinct Characters
- Java NIO Pipe使用示例
- Java集合分类以及各自特点
- jdk 源码分析(2)java hashtable的结构及hashMap对比
- 查看本机ssh公钥,生成公钥
- Redis学习——01.redis安装
- 链表操作(链表面试题)
- Bye, sent_keys