文档章节

jfinal上传文件

zchuanzhao
 zchuanzhao
发布于 2015/10/19 13:35
字数 231
阅读 123
收藏 2

先导入 cos-26Dec2008.jar包

package com.lxinet.qqorder.controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.jfinal.core.Controller;
import com.jfinal.kit.PathKit;
import com.jfinal.upload.UploadFile;

/**
 * 上传文件 
 * @author cz
 */
public class UploadController extends Controller {
	public void doUpload() {
		String path = new SimpleDateFormat("yyyyMMdd").format(new Date());
		UploadFile file = getFile("filedata", PathKit.getWebRootPath()
				+ "/temp");
		File source = file.getFile();
		String fileName = file.getFileName();
		String extension = fileName.substring(fileName.lastIndexOf("."));
		String prefix = "upload/";
		try {
			if (".png".equals(extension) || ".jpg".equals(extension)
					|| ".gif".equals(extension)) {
				prefix += "img";
				fileName = generateWord() + extension;
			} else {
				prefix += "file";
			}
			FileInputStream fis;
			fis = new FileInputStream(source);
			File targetDir = new File(PathKit.getWebRootPath() + "/" + prefix
					+ "/" + 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();
			setAttr("statusCode", 200);
			setAttr("message", "");
			setAttr("filename", "" + prefix + "/" + path + "/" + fileName);
			source.delete();
		} catch (Exception e) {
			e.printStackTrace();
		}
		renderJson();
	}

	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;
	}
}


© 著作权归作者所有

共有 人打赏支持
zchuanzhao
粉丝 49
博文 237
码字总数 144603
作品 1
福州
程序员
JFinal极速开发实战教程新鲜出炉~

JFinal极速开发实战教程新鲜出炉~ [持续更新中...] JFinal框架让 IT 工程师发挥更大的潜能,实现更大价值,同时也希望 JFinal 工具力量能帮助正在创业的朋友们提升效率、降低成本从而实现创业...

山东-小木
2015/01/07
0
13
JFinal处理文件上传应该注意的问题

JFinal处理文件上传的时候,保存文件什么的都没有问题。需要注意的地方就是你保存好了文件,打算返回Json格式的数据的时候注意了: setAttr("xxx", xxx);setAttr("xxx", xxx);renderJson();或...

无聊的人们啊
2012/04/17
0
6
JFinal Weixin 2.1 发布,微信极速 SDK

JFinal Weixin 发布四年多以来,以其简单性、稳定性,获得了大量用户的喜爱,这四年多以来 JFinal Weixin 紧跟微信官方动态,不断增加、完善功能,例如跟随本次微信官方发布的 XXE 漏洞,第一...

JFinal
07/10
0
0
OSC上关于Jfinal的提问整理(一)

看见Jfinal很火,就手痒痒了,想学一下,无奈入门较慢,没有找到比较全的文档。于是就经常看讨论区大家的提问与解答。后来就忽然萌生了整理下来的想法。其中的问题如果是@Jfinal 回答的,那我...

木川瓦兹
2013/04/23
0
21
分享JFinal中renderFile方法中文文件名乱码问题的解决办法

最近在一直在使用JFinal进行web项目的开发工作,使用起来感觉非常之方便效率,不愧是名为急速WEB开发框架,呵呵! 废话不说,进入正题。项目开发过程中经常遇到文件的上传于下载,JFinal中提...

htoman
2013/02/01
0
3

没有更多内容

加载失败,请刷新页面

加载更多

聊聊clean code

clean code,顾名思义就是整洁的代码,或者说清晰、漂亮的代码,相信大多数工程师都希望自己能写出这样的代码。 也许这是个千人千面的话题,每个工程师都有自己的理解。比如我,从一个天天被...

Skqing
9分钟前
0
0
redis连接报错—— (error) NOAUTH Authentication required.

1.redis报认证错误 redis客户端连接成功,但是操作报异常——(error) NOAUTH Authentication required 错误的含义是说你没有认证,说明没有使用密码连接 redis-cli -h 127.0.0.1 -p 6379 -a ...

啊哈关关
15分钟前
0
0
地理位置坐标标准以及转换

/** * 地理位置坐标标准以及转换 * * 1.WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于W...

葉者
18分钟前
0
0
Generator-ES6

基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。 Generator 函数有多种理解角度。语法上,首先可以把它理解成,Generator 函数是一个状态机,封装...

简心
36分钟前
5
0
FullCalendar日历插件说明文档

普通显示设置 属性 描述 默认值 header 设置日历头部信息。 如果设置为false,则不显示头部信息。包括left,center,right左中右三个位置,每个位置都可以对应以下不同的配置: title: 显示当...

ada_young
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部