`
feohoo
  • 浏览: 112537 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

jsp使用组件进行文件上传

阅读更多

WEB文件上传可能是网站建设中最常用的功能之一,我在项目开发中几乎都需要实现文件上传功能.前段时间自己搜集了一些上传组件.这篇文章中将介绍这些组件的使用方法,并且比较各自的优劣.

一,smartupload组件.

我想只要做个文件上传的朋友都知道这个组件,我认识的人中使用最多的也是它!我刚到公司的时候,公司也使用的smartupload,这个组件上传相对较小的文件时是个不错的选择.下面给出个使用的例子:

  
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.jspsmart.upload.*" %>

<%
   //实例化上载bean
    SmartUpload mySmartUpload=new SmartUpload();
    //初始化
    mySmartUpload.initialize(pageContext);
    //设置上载的最大值,注意:如果这里设置过大会出现问题!
    mySmartUpload.setMaxFileSize(500 * 1024*1024);
    //上载文件
    mySmartUpload.upload();
   //循环取得所有上载的文件
   for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
   //取得上载的文件
   com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
   if (!myFile.isMissing())
    {
   //取得上载的文件的文件名
    String myFileName=myFile.getFileName();
    //取得不带后缀的文件名
    String  suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
    //取得后缀名
    String  ext= mySmartUpload.getFiles().getFile(0).getFileExt(); 
    //取得文件的大小 
    int fileSize=myFile.getSize();
    //保存路径
    String aa=getServletContext().getRealPath("/")+"jsp\\";
    String trace=aa+myFileName;
    //取得别的参数
    String explain=(String)mySmartUpload.getRequest().getParameter("text");
    String send=(String)mySmartUpload.getRequest().getParameter("send");
    //将文件保存在服务器端
    myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
    %>


但是使用smartupload上传过大文件,或者多文件的时候可能出现CPU或内存占用过高的问题.并且:只有重新启动容器才能恢复正常!这正是我最后我放弃了使用smartupload的原因.

================================================================================================

二,commons-fileupload组件

这个组件是我现在使用的组件,下载地址:http://jakarta.apache.org/site/downloads/downloads_commons-fileupload.cgi,包内包含了API文档.

使用该组件的例子:

<%@ page language=“java”contentType=“text/html;charset=GBK”%>
<%@ page import=“java.util.*”%>
<%@ page import=“org.apache.commons.fileupload.*”%>
<html>
<head>
<title>文件上传</title>
</head>
<%
 DiskFileUpload fu = new DiskFileUpload();
 // 设置允许用户上传文件大小,单位:字节
 fu.setSizeMax(10000000);
 // 设置最多只允许在内存中存储的数据,单位:字节
 fu.setSizeThreshold(4096);
 // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
 fu.setRepositoryPath(“D:\\Tomcat5\\TEMP”);
 //开始读取上传信息
 List fileItems = fu.parseRequest(request);
 // 依次处理每个上传的文件
 Iterator iter = fileItems.iterator();
 while (iter.hasNext()) {
  FileItem item = (FileItem) iter.next();
  //忽略其他不是文件域的所有表单信息
  if (!item.isFormField()) {
   String name = item.getName();
   item.write(“D:\\UploadTest\\”+ name);
 }
}
%>

从上面的程序可以看出,该组件上传时候可以用了一个地方来存储临时文件,呆上传完成后直接把文件写过去.这样就不会占用过多的内存!而且该组件上传大文件的时候效率也不低哦!

在这两个的对比选择中,我选择了后者,因为我做的项目中经常上传大于10M的文件,用前者的时候服务器几乎被整崩溃.

不过,现在我已经不用这两种组件了,因为http方式传文件效率始终很低,我们现在使用的是web方式实现的ftp文件上传,我将在下篇文章中写我在项目中是如何实现的.

 
分享到:
评论

相关推荐

    利用jspSmartUpload组件进行文件上传

    JSP Smart Upload组件是一款强大的文件上传工具,尤其适合在JSP环境下使用。它提供了便捷的API,使得开发者能够轻松地处理文件上传的过程,包括文件大小限制、文件类型的检查以及多文件上传等功能。 JSP Smart ...

    JSP无组件文件上传

    在网络上找到的,纯JSP实现的文件上传程序,支持多文件的上传,例子是多文件的上传,稍微修改就可以变成单文件的上传或者更多文件的上传,控制成需要扩展名的文件上传,指定大小的文件上传等。程序目前上传文件存储...

    jspSmart组件实现文件上传

    jspSmart组件实现文件上传 jspSmart组件实现文件上传 jspSmart组件实现文件上传 jspSmart组件实现文件上传 jspSmart组件实现文件上传 jspSmart组件实现文件上传 jspSmart组件实现文件上传 jspSmart组件实现文件上传

    使用jspSmartUpload组件在jsp中实现上传和下载

    在JSP页面中使用jspSmartUpload进行文件上传,需要遵循以下规范: 1. **表单方法**:必须使用POST方法提交表单,确保文件数据能够被正确解析。 2. **编码类型**:设置`enctype`属性为`multipart/form-data`,以便...

    jsp无组件文件上传

    通过上述分析,我们可以看到,“jsp无组件文件上传”涉及到了对HTTP协议中multipart/form-data格式的理解和处理,以及如何在Java Servlet环境中安全、高效地进行文件上传和管理。虽然这种方式相对复杂,但通过自定义...

    jspsmartupload组件实现文件上传

    NULL 博文链接:https://systemxgl.iteye.com/blog/267472

    jsp 文件 上传 组件

    总结,JSP文件上传组件通常涉及JSP页面设计、Servlet处理以及第三方库如Apache Commons FileUpload的使用。理解这些知识点,开发者就能构建出健壮且安全的文件上传功能。在实际应用中,务必注意文件上传的安全性,...

    jspsmartupload组件源码.zip_ jspSmartUpload_jsp_jsp 上传文件_jspSmartUplo

    **SmartUpload.java**:这是JSpsmartupload组件的主要类,它包含了所有与文件上传相关的操作。它提供了一系列的方法,如添加上传文件、设置上传限制、处理上传错误等。开发者可以使用这个类来控制上传过程,比如限制...

    jsp无组件上传 纯源码

    "jsp无组件上传 纯源码"指的是利用JSP技术实现文件上传功能,而无需依赖任何第三方组件或库,如Apache Commons FileUpload等。这种方法对于学习JSP基础和理解文件上传原理非常有帮助。下面将详细阐述纯JSP实现文件...

    使用jspSmartUpload实现文件上传下载

    首先,`jspSmartUpload`是一个基于Java Servlet的文件上传组件,它提供了一套完整的API来处理文件上传的过程。这个组件支持多文件上传,可以设定上传文件的大小限制,还能处理各种类型的文件格式。通过使用`jsp...

    jspsmart组件(JSP文件上传专用组件)

    jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: 1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以...

    jsp上传文件的组件

    本篇文章将详细讲解如何在JSP中实现文件上传,并介绍必要的组件及其工作原理。 首先,我们需要了解的是"jsp上传文件的组件"。在这个场景中,`jspsmart.jar`是一个关键的组件,它是一个专门用于处理文件上传的库。...

    上传下载文件组件JSPSmart

    `JSPSmart`是一款专为Java Web开发设计的上传下载文件组件,它简化了在Web应用程序中处理文件上传和下载的复杂性,使得开发者能够更高效、安全地管理用户交互的文件操作。这个组件不仅包含了基本的文件传输功能,还...

    免费的 JSP多文件上传的组件.ZIP_JSP上传_jsp_jsp 上传_jsp多文件上传_jsp文件上传

    标题中的“JSP多文件上传的组件”是指用于在JavaServer Pages (JSP)环境中处理文件上传功能的软件模块。这种组件通常包含了处理文件上传请求、解析上传数据、存储文件到服务器等一系列操作所需的代码和资源。JSP上传...

    JSP无组件实现WEB上传

    JSP无组件实现WEB上传,界面很差,但是功能正常,可以在提交文件的时候同时提交数据进数据库,提交的文件存放在指定文件夹中。本程序使用MYSQL数据库,代码中附有数据表结构,压缩包中附有该上传程序使用的类

    JSP无组件上传

    然而,"JSP无组件上传"是指在不依赖第三方组件的情况下,利用JSP自身的技术和Java Servlet进行文件上传的一种方法。这种方法虽然相对原始,但不失为一种简单实用的选择,尤其是对于小型项目或学习用途。 ### 数据库...

    JSP实用组件 JSP实用组件

    jspSmartUpload是一个开源的JSP文件上传组件,它简化了文件上传的流程,支持多文件上传和错误处理。 1. **jspSmartUpload组件的安装与配置**: - 下载的组件通常是一个ZIP文件,解压缩后是一个Web应用程序。 - ...

    jsp实现文件上传功能组件

    在本教程中,我们将探讨如何利用JSP和Servlet来实现文件上传的功能,特别是在使用smartUpload组件的基础上进行封装,以提供更简洁易用的API。 首先,了解文件上传的基本原理。在Web应用中,文件上传通常涉及HTTP...

    在jsp中使用smartupload组件上传文件.rar_SmartUpload jsp_jsp 上传_jsp 上传文件_sma

    本篇文章将深入探讨如何在Windows环境下使用SmartUpload组件在JSP中实现文件上传功能。 首先,我们需要了解SmartUpload组件的基本概念。SmartUpload是基于Java的开源项目,由Marc Eppel开发。它提供了一套API,允许...

    JSP文件上传JavaBean组件

    在JSP中使用文件上传JavaBean组件,一般需要以下步骤: 1. **创建JavaBean**:首先,我们需要创建一个JavaBean类,包含文件上传的相关属性,如`FileItem`对象(用于封装上传文件的信息),以及处理文件上传的方法,...

Global site tag (gtag.js) - Google Analytics