jfinal form表单提交文件
前台代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/commons/taglib.jsp" %>
<%@ include file="/commons/common.jsp" %>
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'excelImp.jsp' starting page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="${basePath}/js/sg/jquery-1.9.1.js"></script>
</head>
<body>
<form id="file_form" action="${basePath }/excel/upload" enctype="multipart/form-data"
method="post" onsubmit="return validate()">
<input type="file" name="file" id="file_input" />
<input type="submit" value="文件上传" id='upFile-btn'>
</form>
</body>
<script type="text/javascript"> function validate(){
var fileName = $("#file_input").val();
if (fileName === "") {
alert("请选择文件");
return false;
}
var fileType = (fileName.substring(fileName
.lastIndexOf(".") + 1, fileName.length))
.toLowerCase();
if (fileType !== "xls" && fileType !== "xlsx") {
alert("文件格式不正确,请选择excel文件!");
return false;
} $("#file_form").ajaxSubmit({
dataType : "json",
success : function(data, textStatus) {
if (data.result === "OK") {
alert("上传文件成功");
} else {
alert("文件格式错误");
}
return false;
}
});
return true;
}
</script> </html>
后台文件接收:
public void upload(){
try {
// HttpServletRequest request = getRequest();
// String basePath = request.getContextPath();
String ftype = getPara("ftype");
System.out.println("数据类型:"+ftype);
//存储路径
String path = getSession().getServletContext().getRealPath(Preference._PATH);
UploadFile file = getFile("file");
String fileName = "";
if(file.getFile().length() > 200*1024*1024) {
System.out.println("文件长度超过限制,必须小于200M");
setAttr("result", "文件长度超过限制,必须小于200M");
}else{
//上传文件
// String type = file.getFileName().substring(file.getFileName().lastIndexOf(".")); // 获取文件的后缀
// fileName = System.currentTimeMillis() + type; // 对文件重命名取得的文件名+后缀
// String dest = path + "/" + fileName; //新的文件路径+文件名
// System.out.println("新的文件路径+文件名:"+dest);
// file.getFile().renameTo(new File(dest));
// //读取文件内容
// File filen = new File(dest);
List<String[]> list = POIUtil.readExcel(file.getFile());
for (int i = 0; i < list.size(); i++) {
String[] str = list.get(i);
Db.use("db1").update("insert into ics_tasks (query, taskid, tname, ttype, btype) "
+ "values ('"+str[0]+"','"+JavaUtil.getCRC32(str[0])+System.currentTimeMillis()+"','"+str[1]+"','"+str[2]+"','"+str[3]+"')");
}
// String realFile = basePath + "/" + Preference._PATH + fileName;
// String fname="/"+fileName;
// setAttr("fname", fname);
// setAttr("url", realFile);
setAttr("result", "OK");
}
} catch (Exception e) {
e.printStackTrace();
setAttr("result", e.getMessage());
}
renderJson();
}
参考:http://blog.csdn.net/the_first_c/article/details/72868119
jfinal form表单提交文件的更多相关文章
- js实现无刷新表单提交文件,将ajax请求转换为form请求方法
最近在做项目的时候遇到一个需要上传文件的需求,因为ajax请求是无法上传二进制文件流的,所以只能用form表单提交,而form提交有一个问题就是会使页面刷新,本文解决了form表单提交文件时页面刷新的 ...
- Linux curl 模拟form表单提交信息和文件
Linux curl 模拟form表单提交信息和文件 curl是一个命令行方式下传输数据的开源传输工具,支持多种协议:FTP.HTTP.HTTPS.IMAP.POP3.TELNET等,功能超级强大 ...
- form表单提交file
form表单提交文件,这毫无疑问不是个好办法.但是,存在既有意义.既然H5都还让着东西存在着,呢么必然有其意义. form表单中的input type=file这个空间,不得不说奇丑无比!问题是还不能 ...
- Flask基础之返回值与form表单提交
目录 1.Python 现阶段三大主流Web框架 Django Tornado Flask 对比 2.Flask的安装 3.Flask的第一个简单应用 4.Flask中的render_template ...
- Ajax提交Form表单及文件上传
刚刚申请下来的博客,写得第一篇.有点小激动,本人以前是一名工业3D设计师突然有些变故做上了JavaWeb开发: 前几天,发现了一些小问题.我在写后台管理页面时,需要上传一张图片.于是我就用很普通的Fo ...
- ajax form表单提交 input file中的文件
ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...
- js_ajax模拟form表单提交_多文件上传_支持单个删除
需求场景: 用一个input type="file"按钮上传多张图片,可多次上传,可单独删除,最后使用ajax模拟form表单提交功能提交到指定方法中: 问题:由于只有一个file ...
- Java后台使用httpclient入门HttpPost请求(form表单提交,File文件上传和传输Json数据)
一.HttpClient 简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
随机推荐
- 【转】Eclipse,MyEclipse快捷键及字体设置
1.如何调节Eclipse下console输出字体的大小? 打开window - preferences-- general - appearance - colors and fon ...
- Java:反射与代理
Java世界的繁荣反射这一特性有很大功劳,可以获取全面的类型信息. /** * */ package ref; import java.lang.reflect.Field; import java. ...
- [翻译]Review——Learn these core JavaScript concepts in just a few minutes
Learn these core JavaScript concepts in just a few minutes(只需几分钟即可学习这些核心JavaScript概念) 原文地址:https://m ...
- 洛谷P2792 [JSOI2008]小店购物(最小树形图)
题意 题目链接 Sol 一开始的思路:新建一个虚点向每个点连边,再加上题面中给出的边,边权均为大小*需要购买的数量 然后发现死活都过不去 看了题解才发现题目中有个细节--买了\(A\)就可以买\(B\ ...
- 创建一个Dribbble的作品展示
Most designers on dribbble have a personal portfolio website that usually consists of a name and a b ...
- Postman-Tests模块测试方法记录
用Postman的时候大多数测试结果是可以用Tests模块的测试方法来代替人工检查的,测试方法本质上是JavaScript代码,我们可以通过运行测试用例(测试脚本是在发送请求之后并且从服务器接收到响应 ...
- DOM操作表单
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- C++学习笔记(2)----模板
1. 与其他任何类相同,我们既可以在类模板内部,也可以在类模板外部为其定义成员函数,且定义在类模板内的成员函数被隐式声明为内联函数. 2. 默认情况下,对于一个实例化了的类模板,其成员只有在使用时才被 ...
- RocketMQ读书笔记6——可靠性优先的使用场景
[顺序消息] 顺序消费是指消息的产生顺序和消费顺序相同. 比如订单的生成.付款.发货,这三个消息必须按顺序处理才可以. [顺序消息的分类] 全局顺序消息和部分顺序消息. 上面订单的例子,其实是部分顺序 ...
- SQL Server ->> 性能调优案例之 -- 包含递归查询的视图导致整个查询语句性能下降
有个语句最近性能下降很厉害,原本1秒就可以查询完毕的事情现在居然需要3-4分钟. 首先我的做法是先快速找出导致整个语句下降的元凶.在这个例子里面查询语句有3个JOIN字句,我通过删除某一个JOIN节点 ...