JspSmartUpload 实现上传
2、save
作用:将所有上传文件保存到指定文件夹下,并返回保存的文件个数。
原型:public int save(String destPathName)
和public int save(String destPathName,int option)
当中,destPathName为文件保存文件夹,option为保存选项,它有三个值,各自是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO。
(同File类的saveAs方法的选项之值类似)SAVE_PHYSICAL指示组件将文件保存到以操作系统根文件夹为文件根文件夹的文件夹下。SAVE_VIRTUAL指示组件将文件保存到以Web应用程序根文件夹为文件根文件夹的文件夹下,而SAVE_AUTO则表示由组件自己主动选择。
注:save(destPathName)作用等同于save(destPathName,SAVE_AUTO)。
<form method="post" action="uploadfile.jsp" enctype="multipart/form-data">
<input type="file" name="file" size="50">
</form>
这里enctype="multipart/form-data"是form的MIME编码。这个參数才干够上传或下载文件。
<% mySmartUpload.initialize(pageContext); //运行初始化操作
mySmartUpload.upload(); //upload file data
int size = 1024 * 1024 * 1024;
if (mySmartUpload.getFiles().getSize() > size) {
out.println("the files have to be < 1024MB !");
} else {
try {
mySmartUpload.save("/Upload");
out.print("成功上传文件! ");
} catch (Exception e) {
out.print(e.toString());
}
}%>
这里通过save()方法。将文件上传到根文件夹的Upload文件夹中。
1、saveAs作用:将文件换名另存。
原型:
public void saveAs(java.lang.String destFilePathName)
或
public void saveAs(java.lang.String destFilePathName, int optionSaveAs)
当中,destFilePathName是另存的文件名称。optionSaveAs是另存的选项,该选项有三个值。各自是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。
SAVEAS_PHYSICAL表明以操作系统的根文件夹为文件根文件夹另存文件。SAVEAS_VIRTUAL表明以Web应用程序的根文件夹为文件根文件夹另存文件。SAVEAS_AUTO则表示让组件决定。当Web应用程序的根文件夹存在另存文件的文件夹时,它会选择SAVEAS_VIRTUAL,否则会选择SAVEAS_PHYSICAL。
比如。saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)运行后若Webserver安装在C盘。则另存的文件名称实际是c:\upload\sample.zip。而saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)运行后若Web应用程序的根文件夹是webapps/jspsmartupload,则另存的文件名称实际是webapps/jspsmartupload/upload/sample.zip。
saveAs("/upload/sample.zip",SAVEAS_AUTO)运行时若Web应用程序根文件夹下存在upload文件夹。则其效果同saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)。否则同saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)。
建议:对于Web程序的开发来说,最好使用SAVEAS_VIRTUAL,以便移植。
SAVEAS_PHYSICAL 是绝对路径,SAVEAS_VIRTUAL是相对路径(相当于前面加上Tomcat/Webapps/YourProject/)。
<%
mySmartUpload.initialize(pageContext); //initiate
mySmartUpload.upload(); //upload file data
int size = 1024 * 1024 * 1024;
if (mySmartUpload.getFiles().getSize() > size) {//control the size of the file
out.println("the files have to be < 1024MB !");
} else {
try {
for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {//iterating the files
File file = mySmartUpload.getFiles().getFile(i);
if (file.isMissing())
continue;
String virtualPath = "/Upload/";//Tomcat/webapps/YourProject/Upload
file.saveAs(virtualPath + file.getFileName(),
mySmartUpload.SAVE_VIRTUAL);
}
out.print("成功上传文件! ");
} catch (Exception e) {
out.print(e.toString());
}
}
%>
上述代码使用了SaveAs方法,当中SAVEAS_VIRTUAL,存放到Web项目中的,Upload目录中。
以下的代码使用了SAVEAS_PHYSICAL,和上面的代码同样功能,当中 pageContext.getServletContext().getRealPath("/")来获得Webapps/Project的路径。
<%
mySmartUpload.initialize(pageContext); //initiate
mySmartUpload.upload(); //upload file data
int size = 1024 * 1024 * 1024;
if (mySmartUpload.getFiles().getSize() > size) {//control the size of the file
out.println("the files have to be < 1024MB !");
} else {
try {
for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {//iterating the files
File file = mySmartUpload.getFiles().getFile(i);
if (file.isMissing())
continue;
String physicalPath = pageContext.getServletContext()//Tomcat/webapps/YourProject/Upload
.getRealPath("/") + "/Upload/";
file.saveAs(physicalPath + file.getFileName(),
mySmartUpload.SAVE_PHYSICAL);
}
out.print("成功上传文件! ");
} catch (Exception e) {
out.print(e.toString());
}
}
%>
JspSmartUpload 实现上传的更多相关文章
- jspsmartupload 文件上传让input数据和文件上传同时提交
一.使用原因: 文件上传时,表单的属性中必须要有multipart/form-data,如以下例子: <form name="form_post" class="a ...
- Javaweb学习笔记——上传下载文件
一.前言 在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为comm ...
- javaWeb中的文件上传下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- MyEclipse------如何添加jspsmartupload.jar+文件上传到服务器
下载地址:http://download.csdn.net/detail/heidan2006/182263 如何添加jspsmartupload.jar:右键“Web”工程->properti ...
- jspSmartUpload上传下载使用例子
--------------------------------------------------------------------- ServletUpload.java 上传 package ...
- JSP+Servlet中使用jspsmartupload.jar进行图片上传下载
JSP+Servlet中使用cos.jar进行图片上传 upload.jsp <form action="FileServlet" method="post&quo ...
- jsp实现文件上传(一)用jspSmartUpload组件实现文件上传
java类(ImageUtil.java) import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import ...
- smartupload 上传与下载(转载)
前台: <form action="uploadimage.jsp" method="post" enctype="multipart/form ...
- java web(四)文件上传与下载
一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...
随机推荐
- 如何修改MFC的图标
原文:如何修改MFC的图标 修改左上角的图标和任务栏里图标 在对话框构造函数中 CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) : CDialog(CTestD ...
- JSP的九大对象和四大作用域
1.JSP中九大内置对象为: request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request ...
- TX-LCN事务控制原理
TX-LCN由两大模块组成, TxClient.TxManager,TxClient作为模块的依赖框架,提供TX-LCN的标准支持,TxManager作为分布式事务的控制方.事务发起方或者参与方都由T ...
- 获取本地验证码cookie
window.document.onkeydown = function (evt) { evt = (evt) ? evt : window.event; if (evt.keyCode) { if ...
- [GXOI/GZOI2019]宝牌一大堆(dp)
luogu bzoj 这个麻将题还算挺友善的,比隔壁zjoi的要好得多... 比较正常的做法是五维dp 但事实上六维dp也是完全不会被卡的 七对子选权值最高的七个,国士无双直接$13^2$暴力 ...
- 笔试算法题(25):复制拥有多个指针的链表 & 判断二元树B是否为A的子树
出题:定义一个复杂链表:在单向链表的基础上,每个节点附加一个指向链表中其他任意节点的指针sibling,实现CNode* Clone(Cnode *head)函数复制这个复杂链表: 分析: 解法1:将 ...
- Python解释器的种类以及特点
CPython 由C语言开发的 使用最广的解释器 IPython 基于cpython之上的一个交互式计时器 交互方式增强 功能和cpython一样 PyPy 目标是执行效率 采用JIT技术 对pyt ...
- table JS合并单元格
function _w_table_rowspan(_w_table_id,_w_table_colnum){ _w_table_firsttd = ""; _w_table_cu ...
- UVA 12100 打印队列(STL deque)
题意: 给定n个优先级打印队列,然后从0开始编号到n-1.出队一个元素,如果他是队列中优先级最高的,打印(耗时一分钟),否则放到队尾(不耗时).给定一个m,求位置m的文件打印的时间. 分析: 用一个p ...
- 动态创建div(鼠标放上显示二维码)
最近的微信大行其道.各个网站上都给出的微信验证码,进行手机扫描加入. 怎么创建类似与点击鼠标弹出一个浮动的div显示二维码的这种效果. 1.首先制作好这样的图片,写css样式 <style ty ...