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 实现上传的更多相关文章

  1. jspsmartupload 文件上传让input数据和文件上传同时提交

    一.使用原因: 文件上传时,表单的属性中必须要有multipart/form-data,如以下例子: <form name="form_post" class="a ...

  2. Javaweb学习笔记——上传下载文件

    一.前言 在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为comm ...

  3. javaWeb中的文件上传下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  4. MyEclipse------如何添加jspsmartupload.jar+文件上传到服务器

    下载地址:http://download.csdn.net/detail/heidan2006/182263 如何添加jspsmartupload.jar:右键“Web”工程->properti ...

  5. jspSmartUpload上传下载使用例子

    --------------------------------------------------------------------- ServletUpload.java 上传 package ...

  6. JSP+Servlet中使用jspsmartupload.jar进行图片上传下载

    JSP+Servlet中使用cos.jar进行图片上传 upload.jsp <form action="FileServlet" method="post&quo ...

  7. jsp实现文件上传(一)用jspSmartUpload组件实现文件上传

    java类(ImageUtil.java) import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import ...

  8. smartupload 上传与下载(转载)

    前台: <form action="uploadimage.jsp" method="post" enctype="multipart/form ...

  9. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

随机推荐

  1. iview构建 初始化的时候不要装ESlint 太烦人了

    iview构建 Node.js Vue(全局安装) npm install -g vue-cli npm install vue-cli 问题:发现如果不全局安装VUE-cli,\n在它初始化的时候, ...

  2. centos7下配置tomcat开机启动

    配置tomcat的开机启动1> 在centos7的/etc/rc.d/rc.local中加入:(注意自己的路径)#java environment export JAVA_HOME=/usr/j ...

  3. redis(以php代码为例)

    备注:redis及phpredis扩展安装请查看:PHP典型功能与Laravel5框架开发学习笔记 redis具有原子性,所以在高并发情况下确保数据的一致性 一.连接 $redis = new Red ...

  4. python各种推导式分析

    推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...

  5. PHP:Mysql 基础类

    文章来源:http://www.cnblogs.com/hello-tl/p/7592547.html <?php /** * __construct($Mysql_config) 构造函数 $ ...

  6. 11-看图理解数据结构与算法系列(B树的删除)

    删除操作 删除操作比较复杂,主要是因为删除的项可能在叶子节点上也可能在非叶子节点上,而且删除后可能导致不符合B树的规定,这里暂且称之为导致B树不平衡,于是要进行一些合并.左旋.右旋等操作,使之符合B树 ...

  7. 如何实现IIS 7.0对非HTTP协议的支持

    在<再谈IIS与ASP.NET管道>介绍各种版本的IIS的设计时,我们谈到IIS 7.0因引入WAS提供了对非HTTP协议的支持.这个对于WCF的服务寄宿来说意义重大,它意味着我们通过II ...

  8. [codeforces494B]Obsessive String

    [codeforces494B]Obsessive String 试题描述 Hamed has recently found a string t and suddenly became quite ...

  9. Python模块:logging、

    logging模块: 很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出.Python的logging模块提供了标准的日志接口,你可以通过它存储各种格 ...

  10. UVA 1995 I can guess the structer

    模 拟 /*by SilverN*/ #include<algorithm> #include<iostream> #include<cstring> #inclu ...