使用JspSmart文件上传
index.html
[html] view plaincopy
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>文件上传</title>
</head>
<body>
<p> </p>
<p align="center">文件上传选择</p>
<form method="post" action="do_upload.jsp"
enctype="multipart/form-data">
<table width="75%" border="1" align="center">
<tr>
<td><div align="center">
1、<input type="file" name="file1" size="30" />
</div>
</td>
</tr>
<tr>
<td><div align="center">
2、<input type="file" name="file2" size="30" />
</div>
</td>
</tr>
<tr>
<td><div align="center">
3、<input type="file" name="file3" size="30" />
</div>
</td>
</tr>
<tr>
<td><div align="center">
4、<input type="file" name="file4" size="30" />
</div>
</td>
</tr>
<tr>
<td>
<div align="center">
上传账户: <input name="uploadername" type="text" /><input
type="submit" name="Submit" value="上传" />
</div></td>
</tr>
</table>
</form>
</body>
</html>
do_upload.jsp
[java] view plaincopy
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="com.jspsmart.upload.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>文件上传处理页面</title>
</head>
<body>
<%
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 上传初始化
su.initialize(pageContext);
//设置上传限制
//1.限制每个上传文件的最大长度为10MB
su.setMaxFileSize(10 * 1024 * 1024);
//2.限制总上传文件的长度
su.setTotalMaxFileSize(30 * 1024 * 1024);
//3.设定允许上传的文件
su.setAllowedFilesList("txt,jpg");
//4.设定禁止上传的文件
su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
//上传文件
su.upload();
//将上传的文件全部保存到指定目录
int count = su.save("/upload");
out.println(count + "个文件上传成功!<br/>");
//利用Request对象获取参数之值
out.println("<br/>上传帐户:" + su.getRequest().getParameter("uploadername") + "<br/><br/>");
//逐一提取上传文件信息,同时可保存文件
for(int i=0;i<su.getFiles().getCount();i++){
File file = su.getFiles().getFile(i);
//若文件不存在则继续
if(file.isMissing()){
continue;
}
//显示当前文件信息
out.println("<TABLE BORDER=1>");
out.println("<TR><TD>表单项名(FieldName)</TD><TD>"+file.getFieldName()+"</TD></TR>");
out.println("<TR><TD>文件长度(Size)</TD><TD>"+file.getSize()+"</TD></TR>");
out.println("<TR><TD>文件名(FileName)</TD><TD>"+file.getFileName()+"</TD></TR>");
out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>"+file.getFileExt()+"</TD></TR>");
out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"+file.getFilePathName()+"</TD></TR>");
out.println("</TABLE><BR/>");
//将文件另存为
file.saveAs("/upload/saveas/"+file.getFileName(),SmartUpload.SAVE_VIRTUAL);
file.saveAs("c:/temp/upload//"+file.getFileName(),SmartUpload.SAVE_PHYSICAL);
}
%>
</body>
</html>
使用JspSmart文件上传的更多相关文章
- JspSmart文件上传与下载
JspSmart 文件上传包,放在WEB-INF/lib下 uploadForm.jsp <%@ page language="java" import="java ...
- java web(四)文件上传与下载
一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...
- MyEclipse------如何添加jspsmartupload.jar+文件上传到服务器
下载地址:http://download.csdn.net/detail/heidan2006/182263 如何添加jspsmartupload.jar:右键“Web”工程->properti ...
- ajax方式提交带文件上传的表单,上传后不跳转
ajax方式提交带文件上传的表单 一般的表单都是通过ajax方式提交,所以碰到带文件上传的表单就比较麻烦.基本原理就是在页面增加一个隐藏iframe,然后通过ajax提交除文件之外的表单数据,在表单数 ...
- 文件上传--基于Spring MVC框架+SmartUpload
这篇文章是介绍文件上传的,由于在spring MVC上实现起来和直接在servlet中写有些不同,所以特地写了一下这篇文章,关于不同点,大家可以先阅读一下上一篇文章.好了,下面直接上代码. jab包是 ...
- 整合MVC实现文件上传
1.整合MVC实现文件上传整合MVC实现文件上传在实际的开发中在实现文件上传的同时肯定还有其他信息需要保存到数据库,文件上传完毕之后需要将提交的基本信息插入数据库,那么我们来实现这个操作.整个MVC实 ...
- jsp实现文件上传下载
文件上传: upload.jsp <form action="uploadServlet" method="post" enctype="mul ...
- 混合表单文件上传到数据库(基于TOMCAT)
在实际的开发中在实现文件上传的同时肯定还有其他信息需要保存到数据库,就像混合表单在上传完毕之后需要将提交的基本信息插入数据库. 在这个demo中需要用到这个架包来帮助实现 1.定义一个公共类实现文件上 ...
- java实现文件上传下载
喜欢的朋友可以关注下,粉丝也缺. 今天发现已经有很久没有给大家分享一篇技术文章了,于是想了一下给大家分享一篇java实现文件上传下载功能的文章,不喜欢的希望大家勿喷. 想必大家都知道文件的上传前端页面 ...
随机推荐
- Linux:redhat6.5使用yum时提示需要注册问题解决方案
Linux:redhat6.5使用yum时提示需要注册问题解决方案 一.问题 新安装了redhat6.5.安装后,登录系统,使用yum时候.提示: This system is not registe ...
- Docker_remote_api未授权访问漏洞
docker remote api主要的目的是取代命令行界面, docker client和docker daemon通过unix domain socket进行通信. 默认情况下,只有本机的roo ...
- 手动漏洞挖掘-SQL注入(安全牛笔记)
substring_index(USER(),"@",l)-- #是将查询出来的结果进行切分,以@符号的方式切分 ’ union select table_name,table_s ...
- 20145219 《Java程序设计》第01周学习总结
20145219 <Java程序设计>第01周学习总结 教材学习内容总结 软件分类:系统软件(DOS.Windows.Linux等).应用软件(扫雷.QQ等) 人机交互方式:图形化界面.命 ...
- C++中 int main(int argc, char **argv) 命令行传递参数
C++中,比较常见的是不带参数的主函数int main(),如果使用命令行执行程序,主函数也可以接收预先输入的参数,形式如下. int main(int argc,char **argv) argc: ...
- 全卷积网络(FCN)与图像分割
最近在做物体检测,也用到了全卷积网络,来此学习一波. 这篇文章写了很好,有利于入门,在此记录一下: http://blog.csdn.net/taigw/article/details/5140144 ...
- SQL时间戳日期时间转换
将时间戳转换为日期格式:比如降1455504268→2016-02-15 10:44:28 select device.register_time a,FROM_UNIXTIME(device.reg ...
- NumPy在数组上的迭代
NumPy - 数组上的迭代 NumPy 包包含一个迭代器对象numpy.nditer. 它是一个有效的多维迭代器对象,可以用于在数组上进行迭代. 数组的每个元素可使用 Python 的标准Itera ...
- 深度学习框架TensorFlow在Kubernetes上的实践
什么是TensorFlow TensorFlow是谷歌在去年11月份开源出来的深度学习框架.开篇我们提到过AlphaGo,它的开发团队DeepMind已经宣布之后的所有系统都将基于TensorFlow ...
- 关于JDK1.8 HashMap扩容部分源码分析
今天回顾hashmap源码的时候发现一个很有意思的地方,那就是jdk1.8在hashmap扩容上面的优化. 首先大家可能都知道,1.8比1.7多出了一个红黑树化的操作,当然在扩容的时候也要对红黑树进行 ...