使用smartupload进行文件上传

SmartUpload:高效Java文件上传和批量下载解决方案 本文还有配套的精品资源,点击获取 简介:SmartUpload是一个功能强大的Java组件,专门用于简化Web应用中的文件上传任务,并支持批量文件上传和普通表单处理。本文将详细介绍SmartUpload的使用方法,包括文件上传、文件获取、上传文件夹设置以及如何处理批量上传。同时,我们也会探讨SmartUpload在文件下载和批量下载中的应用,包括压缩文件下载和关键配置项的设... 阅读详情

     关于文件上传的代码,只有百度一下都能找到一大堆。但是可惜大多数都使用的是jsp来处理上传,而使用servlet处理文件上传的文章是比较少的。但是不管是jsp还是servlet处理都会跳转但是这样就很难看了。这就要使用到js内嵌的框架了。这样页面看起来就不会跳转了。下面就一步一步的来写下这个程序吧。

1.下载smartupload的jar包,不是jspsmartupload.这一步就大家自己弄了,我就不多说了。

2.编写文件上传的表单,enctype不能忽略,提交的方法要选择post方法

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传</title>
<script type="text/javascript" language="JavaScript">   
function callback(msg)   
{   

    document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>"; 
}   
function f()
{
	var i=1;
	for(i=1;i<6;i++)
	{
		 var s=document.getElementById("pic"+i).value;
		 if(""==s||s==null){
	    	 alert("必须上传5个图片文件");
	    	 
	    	 return false ;
	    }
	}
	
	
	
	
}

</script> 
<body>
   <div id="uploadimg">
     <form action="CheckUpload" id="form1" name="form1" encType="multipart/form-data"  method="post" target="hidden_frame" onsubmit="return f()">   
      <label>图片1</label>
      <input type="file" id="pic1" name="pic1"/><br>
      <label>图片2</label>
      <input type="file" id="pic2" name="pic2"/><br>
      <label>图片3</label>
      <input type="file" id="pic3" name="pic3"/><br>
      <label>图片4</label>
      <input type="file" id="pic4" name="pic4"/><br>
      <label>图片5</label>
      <input type="file" id="pic5" name="pic5"/><br>
      <font color="blue">支持JPG,JPEG,GIF,BMP,png文件的上传</font>                 
      <iframe name='hidden_frame' id="hidden_frame" style="display:none"></iframe> 
      <span id="msg"></span><br> 
      <input type="submit" value="上传"/>
      <input type="reset" value="取消"/>
      </form>
   </div>
</body>
</html>


 

这里对上传的文件做了简单判断,这里就多了 <iframe name='hidden_frame' id="hidden_frame" style="display:none"></iframe> 以及target="hidden_frame",span就用来显示反馈信息。

3.编写servlet处理文件上传

在servlet可以使用下面的2句取得pagecontext

 JspFactory jspf=JspFactory.getDefaultFactory();
 PageContext context=jspf.getPageContext(this, request, response, null, true, 1024, true);

至于这5个参数大家可以去查文档

 

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.PageContext;

import org.lxh.smart.SmartUpload;


public class CheckUpload extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("GBK");
		PrintWriter out=response.getWriter();
		//新建一个SmartUpload对象   
	    SmartUpload su = new SmartUpload();   
	  
	    //上传初始化   
	    JspFactory jspf=JspFactory.getDefaultFactory();
	    PageContext context=jspf.getPageContext(this, request, response, null, true, 1024, true);
	    su.initialize(context);   
	  
	    boolean sign = true;   
	       
	    //4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。   
	    try {   
	        su.setDeniedFilesList("exe,bat,jsp,htm,html");   
	  
	       
	        su.upload();   
	        //String name = su.getRequest().getParameter("uname") ;
	    	IPTimeStamp its = new IPTimeStamp() ;	// 取得客户端的IP地址
	    	java.io.File f=new java.io.File(this.getServletContext().getRealPath("/")+"images");
			
			if(!f.exists())
			{
				f.mkdirs();
			}
	    	for(int x=0;x<su.getFiles().getCount();x++){
	    		String ext = su.getFiles().getFile(x).getFileExt() ;	// 扩展名称
	    		String fileName = its.getIPTimeRand() + "." + ext ;
	    	
	    		
	    		su.getFiles().getFile(x).saveAs(f+java.io.File.separator + fileName) ;
	    	}
	        //将上传文件保存到指定目录   
	       
	      
	    } catch (Exception e) {  
	    	out.print("<script>parent.callback('文件类型不支持或者上传失败')</script>");
	        sign = false;  
	    }  
	  
	    if(sign==true)  
	    {  
	    	 
	    	out.print("<script>parent.callback('文件上传成功')</script>");
	    	
	    	
	    }
	}

}

 

下面先来看下效果截图,这里我选择了一个exe文件

下面是上传成功的截图

 

到这里文章就写好了。
SmartUpload文件上传组件实现详解 是一个用于文件上传的Java组件,它简化了Web应用中文件上传和下载的操作。通过封装底层的细节,提供了一套API,允许开发者以直观的方式处理文件上传和下载的逻辑,而无需关注复杂的HTTP协议细节。它支持多种文件上传方式,包括表单提交、带文件的邮件附件等,并允许设置上传文件的大小限制、文件类型过滤等参数。在许多旧版的JSP/Servlet应用中,因其简单易用而被广泛采用。组件提供了一系列核心类,以支持文件上传的各种功能。 阅读详情

相关推荐

JSP文件上传实战:使用SmartUpload组件

SmartUpload组件为Java开发者提供了强大的文件上传和下载功能,通过简单的API调用,就能轻松实现复杂的文件上传逻辑。它比传统基于servlet的文件上传组件(如Jakarta Commons FileUpload)更为简洁易用。SmartUpload组件通过其简洁的API和强大的功能为Java Web开发者提供了一个方便的文件上传解决方案。通过本章节的内容,您已经了解了SmartUpload组件的基本概念、版本兼容性、主要功能以及具体的代码使用方法。

weixin_26854475的博客 1151

文本编辑器(Editor)and 文件上传功能

一.文本编辑器 1.What?文本编辑器是什么? 文本编辑器(或称文字编辑器)是用作编写普通文字的应用软件,它常用来编写程序的源代码。 2.How?怎样获得文本编辑器? 1)可以去jQuery插件库搜索文本编辑器。 2)用高人写好的功能包(这里介绍fckeditor) a.新建Jsp项目将文件夹:fckeditor 复制到WebContent中 b.导包:将以下三个包复制到WEB-INF的lib中 c.新建jsp文件夹就可以开始写代码啦!以下为文本编辑器的代码。 其中导包...

m0_64848027的博客 1810

SmartUpload文件上传小例子

这是我用SmartUpload组件写的一个文件上传的小例子,解压缩后可直接导入到MyEclipse(Eclipse)中运行。这肯定不是文件上传的最好方案,仅供有兴趣的朋友们学习参考!

SmartUpload文件上传

一、文件上传和下载 1、重新配置服务器 a、首先我们需要重新配置服务器,首先删掉我们原有的Tomcat。 第一步:点击我们server启动服务器的连接,然后点击configure清空历史记录,然后选中历史记录remove掉,然后保存并关闭(Apply and close)。 b、然后重新点击我们的Tomcat v9.0 Server,点击下一步,默认安装路径就OK了。 c、然后双击服务器,找到服务器的地址(server location),然后选择第三个use,最后把路径改为你Tomcat的安装路

weixin_64738832的博客 746

使用SmartUpload 实现文件上传

使用SmartUpload 实现文件上传,

SmartUpload的使用及相关操作(上传文件控制和保存文件命名)

使用SmartUpload编写的代码进行文件上传。 控制文件类型及文件大小,也可以实现批量上传。 使用IP时间戳对文件进行命名。 程序的扩展性比较墙。

使用SmartUpload组件实现文件上传

  文件上传是做JavaWeb项目中经常使用的功能,而SmartUpload是一个可免费使用的全功能的文件上传下载组件。虽然此组件最近很少有更新,但由于其简单易用,对于一般的项目来说还是一个很好的选择。下面以一个具体的例子来说明此组件的使用。   首先,将SmartUplaod的jar文件放入项目的lib目录中。   然后,我们开发上传用的JSP页面,为了简单起见,本表单中仅包含了用...

iteye_8085的博客 485

spring 集合 smartupload 简单实现上传下载应用

spring 集合 smartupload 简单实现上传下载应用 spring 集合 smartupload 简单实现上传下载应用 spring 集合 smartupload 简单实现上传下载应用

使用smartupload.jar实现文件上传

使用smartupload.jar实现文件上传 需导入smartupload.jar 包 前端页面: <form action="/UploadServlet" method="post" enctype="multipart/form-data"> 名称:<input type="text" name="uname"><br> 文件:<input type="file" name="myfile"><br> <input

jerry_wzj_的博客 351

SmartUpload+swf实现同时选择多文件上传(带进度条)

SmartUpload+swf实现同时选择多文件上传(带进度条)

李大勇matlab密码,基于MatlabSimulink的太阳能热水系统仿真研究 沈超.doc

基于MatlabSimulink的太阳能热水系统仿真研究 沈超中国工程热物理学会 工程热力学与能源利用 编号:141090基于Matlab/Simulink的太阳能热水系统仿真研究沈 超1 1 余 鹏1 李洪欣1 魏新利2郑州大学土木工程学院,郑州 450001郑州大学化工与能源学院,郑州 45...

weixin_42298437的博客 1341

maven配置smartupload_SmartUpload文件上传组件的使用教程

在项目中使用SmartUpload组件可以进行文件的上传和下载操作使用步骤1.导入jar包,进行build path操作2.编写文件上传页面,代码如下请选择要上传的文件:3.建立upload文件夹,文件夹在web跟目录下:4.实例化SmartUpload对象:5.初始化上传操作;6.准备上传7.保存文件代码如下://1.实例化SmartUpload对象SmartUpload smart=new S...

weixin_39866419的博客 1123

浅谈python反序列化漏洞

0x01 python序列化与反序列化 Python 的序列化和反序列化是将一个类对象向字节流转化从而进行存储和传输,然后使用的时候再将字节流转化回原始的对象的一个过程。python中的序列化操作是通过pickle模块,而该模块主要包含l dumps将dict转化为str格式,loads将str格式转化为dict格式。 dump和load与文件操作结合起来, pickle.dump(obj, f...

Lethe's Blog 3220

jsp使用SmartUpload进行文件上传

思路:jsp前端用于接收照片,传给servlet进行处理并且跳转页面 注意: 导入jar包 : jspSmartUpload.jar 提取码 8hhh SmartUpload工具上传文件步骤 上传文件的步骤: 1、实例化SmartUpLoad实例 SmartUpload smart = new SmartUpload(); 2、初始化上传操作 ServletConfig config = ...

weixin_43623082的博客 478

FIddler+Proxifer 实现PC客户端抓包详细教程

FIddler+Proxifer 实现PC客户端抓包详细教程

森明帮大于黑虎帮的博客 1万+

文献阅读笔记:量子微波测量技术综述

量子微波测量技术研究进展:量子微波测量技术利用里德堡原子与微波电场的相干相互作用,突破了传统测量方法的物理限制。该技术基于电磁诱导透明效应和里德堡原子能级跃迁原理,通过激光激发原子并监测光谱变化来测量微波电场强度。相比传统方法,量子微波测量具有超高灵敏度(理论极限可达nV/cm)、宽动态范围(超过100dB)、小型化等显著优势,且测量结果可直接溯源至普朗克常数。典型实验系统包括光源、原子气室和探测器,采用光谱法、干涉法等多种测量方法。近年来,该技术在基础研究和应用方面取得重要进展,展现出在通信、雷达、计量等

Grow into a more wonderful you 988

使用smartUpload进行文件上传

使用smartUpload进行文件上传 转载地址:java mldn。

sqh1232008的专栏 189

给排水工程师的SWMM初体验:从软件界面到第一个简单模型的保姆级上手教程

本文为给排水工程师提供SWMM软件的保姆级上手教程,从界面解析到创建第一个简单模型,详细介绍了SWMM的核心功能和操作步骤。通过30分钟的实践指导,帮助新手快速掌握雨水管网建模的基本技能,提升工作效率。

weixin_28736355的博客 323

使用smartUpload组件进行文件上传以及获取文本数据

如何在jsp中进行文件上传,要用到第三方jar包--smartUpload.jar,首先下载该jar包,然后拷贝到你工程的lib目录下,当然你也可以添加到tomcat的lib目录中。 当利用form表单进行文件上传的时候必须把给文件封装成二进制流,封装二进制流只需要在form表单中加上enctype="multipart/form-data",form表单提交时就以二进制方式提交。 1:s

LB228988的专栏 1191

Android Input——输入系统介绍(一)

Input 系统对于提供流畅、灵敏和一致的用户交互体验至关重要,它需要在不同的设备、场景和应用中保证输入事件的正确性、及时性和安全性。Android 输入系统是一个复杂但高效的设计,旨在处理来自各种输入设备(如触摸屏、键盘等)的用户交互,并将这些交互转换为应用程序可以理解和响应的形式。EventHub:输入系统的最底层,直接与硬件通信,监听和读取输入设备的原始事件。:从 EventHub 获取原始输入事件,对其进行解析,转化为更高层次的事件,以便上层应用或服务能够理解。

小旭的专栏 1712

RandLA-Net Tensorrt 推理 c++

RandLA-Net 实现 Tensorrt 部署.

J。 1109

使用smartupload.jar实现文件上传下载

使用smartupload.jar实现文件上传下载 准备上传的页面 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>文件上传下载</title> </head> <body> <form action="/uploadtest" method="post" enctype="multip

LLLlucky_boy的博客 334

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JAVA上传smartupload_java使用smartupload组件实现文件上传的方法

推荐:jsp利用application统计在线人数的方法这篇文章主要介绍了jsp利用application统计在线人数的方法,代码中备有较为详尽的注释便于理解,是比较实用的技巧,需要的朋友可以参考下 本文实例讲述了jsp利用application统计在线人数的方法。分享给大家供大家参考。 具体实现方法如下: 代码如下:%@ page language=jav这篇文章主要介绍了java使用smart...

weixin_29726381的博客 321

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【文件上传】smartupload工具包的使用方法(附Demo)

smartupload是一个常用的文件上传的工具包 jar包链接: 链接:https://pan.baidu.com/s/1WJeO2HQAm-Mq7pqf81OMjA 提取码:mr92 O、smartupload常用方法 一、配置index.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</

haohaoxuexiyai的博客 1701

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: android的文件操作(SD卡)
下一篇: ajax的使用
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值