jfinal文件上传与下载
import com.alibaba.fastjson.JSONObject;import com.jfinal.core.Controller;import com.jfinal.ext.kit.ZipUtil;import com.jfinal.kit.PathKit;import com.jfinal.upload.UploadFile;import java.io.*;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Collections;import java.util.Date;import java.util.List;public class FileController extends Controller{ public void upload() { String path = new SimpleDateFormat("yyyy/MM/dd").format(new Date()); UploadFile file = getFile("imgFile", PathKit.getWebRootPath() + "/temp"); File source = file.getFile(); String fileName = file.getFileName(); String extension = fileName.substring(fileName.lastIndexOf(".")); String prefix; if(".png".equals(extension) || ".jpg".equals(extension) || ".gif".equals(extension)){ prefix = "img"; fileName = generateWord() + extension; }else{ prefix = "file"; } JSONObject json = new JSONObject(); try { FileInputStream fis = new FileInputStream(source); File targetDir = new File(PathKit.getWebRootPath() + "/" + prefix + "/u/" + path); if (!targetDir.exists()) { targetDir.mkdirs(); } File target = new File(targetDir, fileName); if (!target.exists()) { target.createNewFile(); } FileOutputStream fos = new FileOutputStream(target); byte[] bts = new byte[300]; while (fis.read(bts, 0, 300) != -1) { fos.write(bts, 0, 300); } fos.close(); fis.close(); json.put("error", 0); json.put("url", "/" + prefix + "/u/" + path + "/" + fileName); source.delete(); } catch (FileNotFoundException e) { json.put("error", 1); json.put("message", "上传出现错误,请稍后再上传"); } catch (IOException e) { json.put("error", 1); json.put("message", "文件写入服务器出现错误,请稍后再上传"); } renderJson(json.toJSONString()); } public void download(){ String path = getPara(0); String img = PathKit.getWebRootPath() + "/img/u/" + path.replaceAll("_", "/"); ZipUtil.zip(img, PathKit.getWebRootPath() + "/img/temp/" + path); renderFile("/img/temp/" + path + ".zip"); } private String generateWord() { String[] beforeShuffle = new String[] { "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; List<String> list = Arrays.asList(beforeShuffle); Collections.shuffle(list); StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.size(); i++) { sb.append(list.get(i)); } String afterShuffle = sb.toString(); String result = afterShuffle.substring(5, 9); return result; }jfinal文件上传与下载的更多相关文章
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- (转载)JavaWeb学习总结(五十)——文件上传和下载
源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...
- JavaWeb学习总结,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- java文件上传和下载
简介 文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到 ...
- 使用jsp/servlet简单实现文件上传与下载
使用JSP/Servlet简单实现文件上传与下载 通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ...
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- 文件上传和下载(可批量上传)——Spring(三)
在文件上传和下载(可批量上传)——Spring(二)的基础上,发现了文件下载时,只有在Chrome浏览器下文件名正常显示,还有发布到服务器后,不能上传到指定的文件夹目录,如上传20160310.txt ...
- 文件上传和下载(可批量上传)——Spring(二)
针对SpringMVC的文件上传和下载.下载用之前“文件上传和下载——基础(一)”的依然可以,但是上传功能要修改,这是因为springMVC 都为我们封装好成自己的文件对象了,转换的过程就在我们所配置 ...
- Struts2 之 实现文件上传和下载
Struts2 之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...
随机推荐
- [UVa10188]Automated Judge Script
题目大意:叫你写一个判断答案的系统. 解题思路:模拟即可.AC条件为,答案条数相等,所有字符相等.PE条件为,答案条数可能不等,所有数字字符相等.其他为WA. UVa现在的C++已经不支持gets了, ...
- mysql 1067终极解决办法 亲测好使
进入mysql data 目录 删除 ib_logfile0 ib_logfile1 ibdata1 这三个文件 重启mysql
- jquery 遍历 table 下所有得tr td
$("#middle").contents().find("tbody tr").each(function(i,n){ var child = $(this) ...
- [terry笔记]redhat5.5_11gR2_RAC_安装
redhat5.5_11gR2_RAC_安装,这篇主要记录RAC安装的执行步骤,最烦琐的就是前期配置,到后面图形界面runInstaller,asmca,dbca就很容易了. --hostname检查 ...
- 洛谷 P2665 [USACO08FEB]连线游戏Game of Lines
P2665 [USACO08FEB]连线游戏Game of Lines 题目背景 Farmer John最近发明了一个游戏,来考验自命不凡的贝茜. 题目描述 Farmer John has chall ...
- Tsinsen A1303. tree(伍一鸣) LCT
LCT的各种操作... . cut link add mul size rev query 写的效率不够高... BZOJ上似乎TLE. ... A1303. tree(伍一鸣) 时间限制:2.5s ...
- LeetCode【8】. String to Integer (atoi) --java实现
String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully consider ...
- 面试题:Student s = new Student();在内存中做了哪些事情?即创建一个对象做了哪些事情
lStudent s = new Student();在内存中做了哪些事情? •载入Student.class文件进内存(方法区) •在栈内存为s开辟空间 •在堆内存为学生对象开辟空间 •对学生对象的 ...
- jsp布局中关于<iframe>标签的使用
iframe 元素会创建包括另外一个文档的内联框架(即行内框架). 注意:在 HTML 4.1 Strict DTD 和 XHTML 1.0 Strict DTD 中,不支持 iframe 元素. & ...
- shell学习-while
1.shell while语句语法 while condition do statements done 2.shell while语句实例 #! /bin/sh 2 var1=1 3 while(( ...