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,创 ...
随机推荐
- 基于netcore对ElasitSearch客户端NEST查询功能的简单封装NEST.Repository
NEST.Repository A simple encapsulation with NEST client for search data form elasticsearch. github A ...
- Bzoj3197: [Sdoi2013]assassin
题面 传送门 Sol 套路:找出重心,如果有两个就新建一个点 然后把这棵树hash一下 设\(f[i][j]\)表示第一颗树到\(i\)第二棵树到\(j\),子树\(i,j\)同构的付出的最小代价 转 ...
- JavaScript Standard Style
这是 JavaScript standard 代码规范的全文. 掌握本规范的最好方法是安装并在自己的代码中使用它. https://github.com/standard/standard/blob/ ...
- iphone崩溃日志分析工具symbolicatecrash用法
Symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的地址替换成代码相应位置. 使用效果: 分析前: T ...
- leetcode Ch4-Binary Tree & BFS & Divide/Conquer
一. 1. Lowest Common Ancestor class Solution { public: TreeNode *lowestCommonAncestor(TreeNode *root, ...
- resin发布spring-boot项目报错“java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger”
说白了还是jar包冲突问题,直接说解决方式: 首先将resin/lib下的validation-api-1.0.0.GA.jar替换成项目中的包validation-api-2.0.1.Final.j ...
- Java学习---基础知识学习
2016-07-23 周六 利用键盘输入的时候需要抛出异常 ,直接快捷键 ctrl + 1 ;定义数组 int score[] = new int[4] ; 只有4个数字BufferedRead ...
- 数据库相关文章转载(2) MySQL自带的性能压力测试工具mysqlslap详解
PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...
- C/S架构的性能测试
很多人关心LR在C/S架构上如何实施性能测试,我想根本原因在于两个方面,一是很多时候脚本无法录制,即LR无法成功调用被测的应用程序,二是测试脚本即使录制下来,可读性不强,往往不能运行通过,调试时无从下 ...
- August 31st 2017 Week 35th Thursday
Whatever happened in the past is gone, the best is always yet to come. 无论过去发生什么,最好的永远尚未到来. Correct j ...