SmartUpload实现文件上传

(一)SmartUpload组件简介

SmartUpload组件

专门用于实现文件上传及下载的免费组件

(二)SmartUpload组件特点

使用简单:编写少量代码,完成上传下载功能

能够控制上传内容

能够控制上传文件的大小、类型

缺点:目前已停止更新服务

(三)SmartUpload组件应用条件

File类及方法

SmartUpload类及方法

文件上传的实现

控制上传文件的类型

控制上传文件的大小

注意:

㈠ 表单要求

对于上传文件的FORM表单,有两个要求:

1、METHOD应用POST,即METHOD="POST"。

2、增加属性:ENCTYPE="multipart/form-data"

案例:下面是一个用于上传文件的FORM表单的例子:

表单页面indes.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>SmartUpload</title>

  </head>

  <body>
    <form action="doupload.jsp" method="post" enctype="multipart/form-data">
        姓名:<input type="text" name="username" /><br/>
        密码:<input type="text" name="pwd" /><br/>
        文件1:<input type="file" name="file1" /><br/>
        文件2:<input type="file" name="file2" /><br/>
        文件3:<input type="file" name="file3" /><br/>
        文件4:<input type="file" name="file4" /><br/>
        文件5:<input type="file" name="file5" /><br/>
        文件6:<input type="file" name="file6" /><br/>
        文件7:<input type="file" name="file7" /><br/>
        <input type="submit" />
    </form>
  </body>
</html>

处理表单页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.jspsmart.upload.SmartUpload"%>
<%@page import="com.jspsmart.upload.File"%>
<%

    //----处理上传文件
    /*
        使用smartupload
            1、添加组件jar包至WEB-INF/lib包中
            2、设置form表单的提交类型为二进制类型
    */

    //创建smartupload组件
    SmartUpload su = new SmartUpload();

    //初始化组件上下文
    su.initialize(pageContext);

    //设置编码
    su.setCharset("utf-8");
    try{

        //允许上传的文件类型
        //su.setAllowedFilesList("doc");

        //限制上传文件的类型
        //su.setDeniedFilesList("bat");

        //限制上传文件的大小
        //su.setMaxFileSize(2000);

        //上传文件
        su.upload();
    }catch(Exception e){
        %>
            <script type="text/javascript">
                alert("不允许上传:bat,exe,jsp,html,htm,java,class文件类型");
                location.href="index.jsp";
            </script>
        <%
    }

    out.println("上传"+su.save("upload\\")+"个文件成功!!!");

    //得到表单项
    String name = su.getRequest().getParameter("username");
    String pwd = su.getRequest().getParameter("pwd");

    /*
        实现多文件上传
    */
    for(int i = 0; i < su.getFiles().getCount(); i++){

        //获取单个文件
        File file = su.getFiles().getFile(i);

        //判断当前file是否选择了文件;如果没有则继续
        if(file.isMissing())continue;

        //设置上传服务器的位置
        String path = "upload\\";

        //得到上传文件的名称
        String filename = file.getFileName();

        //上传文件的路径
        path = path + filename;

        //保存文件
        file.saveAs(path,SmartUpload.SAVE_VIRTUAL);

        out.println("<table border=1>");
        out.println("<tr><td>姓名:</td><td>"+name+"</td></tr>");
        out.println("<tr><td>密码:</td><td>"+pwd+"</td></tr>");
        out.println("<tr><td>上传的文件名称(filename):</td><td>"+filename+"</td></tr>");
        out.println("<tr><td>上传的文件表单项名称(fliedname):</td><td>"+file.getFieldName()+"</td></tr>");
        out.println("<tr><td>上传的文件的大小(长度)(size):</td><td>"+file.getSize()+"</td></tr>");
        out.println("<tr><td>上传的文件的扩展名(ext):</td><td>"+file.getFileExt()+"</td></tr>");
        out.println("</table><br/>");

    }

%>
时间: 2024-10-29 04:44:42

SmartUpload实现文件上传的相关文章

基于Servlet+smartUpload的文件上传

文件上传在web应用中是非常常见的,现在我就介绍下基于servlet的文件上传,基于Struts2的文件上传可以看: 页面端代码: <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <ht

易买网之smartupload实现文件上传

经过俩个星期的奋斗,易买网项目完工.在之前,实现图片的上传,走过许多弯路,原来是好多基础的知识忘记了,没把smartupload文件包添加组件jar包至WEB-INF/lib包中,在此特别重视,做下文件的上传. 第一步:创建商品实体类: package entity; public class easybuy_productn { private int ep_id ;//编号 private String ep_name ;//名字 private String ep_description

smartUpload组件文件上传

public class SmartUploadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpS

文件上传之 MultipartFile

利用MultipartFile(组件)实现文件上传 在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下. 一.主要有两个java类,和一般的servlet放在一起即可. 1.FileUploadBean.java package chb.demo.web; import org.springframework.web.multipart

文件上传--基于Spring MVC框架+SmartUpload

这篇文章是介绍文件上传的,由于在spring MVC上实现起来和直接在servlet中写有些不同,所以特地写了一下这篇文章,关于不同点,大家可以先阅读一下上一篇文章.好了,下面直接上代码. jab包是jspSmartUpload.jar,如果有类似的jar包如:commons-fileupload-1.2.2,留一个即可,否则会冲突报错 首先是一个简单的页面(jsp),比较丑,但能用: <%@ page language="java" contentType="text

文件上传

1.上传的步骤: a.导入SmartUpload.jar b.创建一个上传的类的对象 c.初始化 d.上传至服务器 e.保存 表单提交时需要指定enctype="multipart/form-data"(多数据类型提交) http://www.atguigu.com/opensource.shtml#3(包下载地址) package com.zuxia.servlet; import java.io.IOException;import java.io.PrintWriter; imp

jsp文件上传

整理了一下jsp的上传下载,由客户端到服务端,包括一些常规的业务 一客户端 先看最基本的情况 1 在表单设置multipart/form-data,通过提交键把数据和附件一次性提交的.服务器更多的是对应这个例子. 但有以下问题 一般的Ajax无法把附件数据发过去 附件往往涉及比较多问题,比如上传需要时间(要有个进度),上传也有可能不成功等,上传需要校验的东西就比较多. 2于是就有把上传分开来自己执行的.上传项在浏览文件后就开始上传,其他表单数据在提交表单时再提交. 更详细地说是:上传在表单中有自

java基础篇---文件上传(组件)

文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本篇主要说明smartupload组件上传. 在讲解smartupload上传前,我们先来看看不使用组件是怎么完成上传的原理的? 废话不多说直接上代码 import java.io.*; import java.util.*; import javax.servlet.http.HttpServletRequest; import org.apache.commons.fileupload.Fil

【Jsp】使用AjaxFileUploader与jspsmartupload完成不刷新的Ajax文件上传系统

这个不刷新的Ajax文件上传系统同样可以用来做预览图 虽然预览图完全可以通过不上传图片就完成,但是不刷新的Ajax文件上传系统可以做到上传完图片立即返回上传结果给用户的结果 上次在<[Jsp]使用jspsmartupload完成简单的文件上传系统>(点击打开链接)一文中完成了一个简单的文件上传系统 但是这个文件上传系统过于传统, 上传完文件之后需要跳转到另外一个页面中提交表单,处理表单,然后再提供一个"返回"按钮给用户 如果用户要求上传之后,马上看到图片,并且不跳转,只好利