java中的文件上传及下载组件介绍

文件上传下载【SmartUpload】 项目代码详细请查看这里 http://blog.youkuaiyun.com/qw765811529/article/details/50754983 立即下载

smartupload是将文件先读到服务器的内存中,所以上传太大的文件(超过100兆)有可能会出问题

    先说一下提交的页面,smartupload组件要求用字节流的方式来提交<FORM action="upload.jsp" encType=multipart/form-data method=post>。下面就是个例子upload.htm:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <!-- saved from url=(0057)http://localhost:8080/jspsmartfile/jsp/uploadTemplate.jsp -->
    <HTML><HEAD>
    <META content="text/html; charset=gb2312" http-equiv=Content-Type>
    <META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
    <BODY bgColor=#e6e6e6><BR>
    <FORM action="upload.jsp" encType=multipart/form-data method=post>
    <TABLE>
    <TBODY>
    <TR>
    <TD><FONT color=#000000 face=helv,helvetica size=1>&nbsp;&nbsp;File
    :&nbsp;</FONT>&nbsp;&nbsp;<INPUT size=60 type=file name="file"></TD></TR>
    <TR>
    <TR>
    <TD><FONT color=#000000 face=helv,helvetica size=1>&nbsp;&nbsp;File
    :&nbsp;</FONT>&nbsp;&nbsp;<INPUT size=60 type=file name="file1"></TD></TR>
    <TR>
    <TD><FONT color=#000000 face=helv,helvetica size=1>&nbsp;&nbsp;File
    :&nbsp;</FONT>&nbsp;&nbsp;<INPUT size=60 type=text name="text"></TD></TR>
    <TR>
    <TD
    align=right><INPUT type=submit value=Send name="send"></TD></TR></TBODY></TABLE></FORM></BODY></HTML>

    再来看一下接收的页面 ,我们把文件上传到服务器以后就直接把它再存入数据库中:upload.jsp

    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="com.jspsmart.upload.*" %>
    <%@ page import="DBstep.iDBManager2000.*"%>
    <%
    //实例化上载bean
    com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.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);
    //下面的是将上载的文件保存到数据库中
    //将文件读到流中
    java.io.File file = new java.io.File(trace);
    java.io.FileInputStream fis = new java.io.FileInputStream(file);
    out.println(file.length());
    //打开数据库
    ResultSet result=null;
    String mSql=null;
    PreparedStatement prestmt=null;
    DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
    DbaObj.OpenConnection();
    //将文件写到数据库中
    mSql="insert into marklist (markname,password,marksize,markdate,MarkBody) values (?,?,?,?,?)";
    prestmt =DbaObj.Conn.prepareStatement(mSql);
    prestmt.setString(1, "aaa1");
    prestmt.setString(2, "0000");
    prestmt.setInt(3, fileSize);
    prestmt.setString(4, DbaObj.GetDateTime());
    prestmt.setBinaryStream(5,fis,(int)file.length());
    DbaObj.Conn.setAutoCommit(true) ;
    prestmt.executeUpdate();
    DbaObj.Conn.commit();
    out.println(("上载成功!!!").toString());
    }
    else
    { out.println(("上载失败!!!").toString()); }
    }//与前面的if对应
    %>

    再说一下下载,下载分两种情况1。从数据库直接下载2。从服务器上下载

    先说从数据库直接下载的情形:就是把输入流从数据库里读出来,然后转存为文件

    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.io.*" %>
    <%@ page import="DBstep.iDBManager2000.*"%>
    <%
    int bytesum=0;
    int byteread=0;
    //打开数据库
    ResultSet result=null;
    String Sql=null;
    PreparedStatement prestmt=null;
    DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
    DbaObj.OpenConnection();
    //取得数据库中的数据
    Sql="select * from t_local_zhongzhuan ";
    result=DbaObj.ExecuteQuery(Sql);
    result.next();

    //将数据库中的数据读到流中
    InputStream inStream=result.getBinaryStream("content");
    FileOutputStream fs=new FileOutputStream( "c:/dffdsafd.doc");

    byte[] buffer =new byte[1444];
    int length;
    while ((byteread=inStream.read(buffer))!=-1)
    {
    out.println("<DT><B>"+byteread+"</B></DT>");
    bytesum+=byteread;
    System.out.println(bytesum);

    
    fs.write(buffer,0,byteread);
    }
    %>

    再说从服务器上下载的情形:

    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page import="java.io.*" %>
    <%
    String fileName = "zsc104.swf".toString();f//读到流中
    InputStream inStream=new FileInputStream("c:/zsc104.swf");
    //设置输出的格式
    response.reset();
    response.setContentType("bin");
    response.addHeader("Content-Disposition","attachment; filename="" + fileName + """);
    //循环取出流中的数据
    byte[] b = new byte[100];
    int len;
    while((len=inStream.read(b)) >0)
    response.getOutputStream().write(b,0,len);
    inStream.close();
    %>

PaddleOCR GPU部署:从环境配置到避坑实战指南 本文详细介绍了PaddleOCR GPU部署的全过程,从环境配置到避坑实战指南。通过分析常见的部署失败原因,提供硬件兼容性自查、软件环境精配方案以及路径配置的解决方案,帮助用户高效完成GPU加速的OCR任务部署,避免90%的常见错误。 阅读详情

相关推荐

CIC-IDS数据集特征介绍

###1、简介 通信安全机构(CSE)与加拿大网络安全研究所(CIC)合作项目,该项目对自1998年以来现有的11个数据集的评估表明,大多数数据集(比如经典的KDDCUP99,NSLKDD等)已经过时且不可靠。其中一些数据集缺乏流量多样性和容量,一些数据集没有涵盖各种已知的攻击,而另一些数据集将数据包有效载荷数据匿名化,这不能反映当前的趋势。有些还缺少特征集和元数据。 CIC-IDS-2017数据集包含良性和最新的常见攻击,类似真实世界数据(PCAPs)。 它的数据采集截至2017...

蓝亚之舟的博客 3万+

jsp——SmartUpload上传下载

SmartUpload 简介 SmartUpload组件是www.jspsmart.com网站开发的一套上传组件,它使用简单,方便。有以下几个特点: 使用简单。在JSP中仅仅书写三五行java代码就可以搞定文件的上传或下载。 能全程控制上传。利用SmartUpload组件提供的对象及其操作方法, 可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取 下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。 不管文件在Web服务器的目录下或在其他任何目录下,都可以使用Sma.

hey,欢迎浏览我的博客,希望能给你提供帮助。 5647

荔枝派Lichee Nano全志F1C100s烧录避坑指南:从Fel模式到SPI Flash完整流程

本文详细介绍了荔枝派Lichee Nano基于全志F1C100s芯片的SPI Flash烧录完整流程,从FEL模式进入技巧到定制化sunxi-tools编译,再到分区策略与实战烧录步骤。针对开发者常见的烧录程序问题提供了专业解决方案,帮助用户高效完成嵌入式系统部署。

tea88的博客 788

smartupload.jar实现文件上传,下载(附下载链接)

JavaWeb使用smartupload.jar实现文件上传,下载 1、先将smartupload.jar 导入到项目中 jar包下载地址: 点击去下载 2、上传页面的准备 注:(1)form标签中要添加enctype属性 (2)提交方式必须是post <html> <head> <title>文件上传</title> </head> <body> <form method="post" action="/upload"

m0_47422889的博客 2571

高通平台camera构架sensor驱动详解

优先阅读。

a5566255的专栏 3251

RocketMQ 5.3.1 集成 Spring Boot 3.4.3 就这么简单

RocketMQ 是一个分布式消息中间件,支持发布/订阅模型,具有高吞吐量、高可用性和事务消息等特性。它广泛应用于日志处理、订单系统和异步任务等场景。Spring Boot 3.4.3 集成 RocketMQ 5.3.1 的过程异常简单,仅需少量配置即可实现消息的生产和消费。本文从环境搭建到代码实现,覆盖了核心步骤。

lssffy的博客 1385

SmartUpload下载(改)

JSP实现文件下载

tanx的博客 344

为什么类型论是函数式编程的理想基础?

函数式编程(如Haskell、Scala、OCaml)以“函数为核心”“无副作用”“不可变数据”等特性著称,但它的“安全高效”并非凭空而来——背后的关键支撑是类型论。本文将聚焦“类型论如何支撑函数式编程”,从基础概念到具体案例,解释两者的本质联系。本文将按“故事引入→核心概念解释→关系拆解→原理+代码案例→实际应用→总结”的逻辑展开,用“乐高积木”“菜谱”等比喻贯穿全文,确保抽象理论可视化。类型论:程序的“接口规则手册”,定义类型和函数的约束;函数式编程。

AI天才研究院 694

【亲测免费】 smartupload.jar文件包下载

smartupload.jar文件包下载 【下载地址】smartupload.jar文件包下载分享 smartupload.jar 是一个专为Java Web项目设计的文件上传组件,它简化了在JSP应用中处理文件上传的过程。此组件提供了一套完整且易于使用的API,能够有效地管理文件上传任务,包括但不限于限制文件大小和类型...

gitblog_06594的博客 1003

Google Cameraserver 看门狗CameraServiceWatchdog超时crash原理分析

本文分析了Android CameraServiceWatchdog机制的工作原理。该看门狗用于监控相机服务关键操作(如close、flush)的超时情况,通过定时器线程检测阻塞问题。文章详细讲解了Watchdog的初始化流程、使能方式、内部定时器机制(默认周期100ms,650次循环触发超时),并提供了configureStreams阶段的客制化实现方案。当检测到超时,Watchdog会触发abort生成tombstone日志,便于调试分析。

1130

分数间隔均衡器的基本原理及应用(使用Matlab)

通过对接收信号进行加权求和,分数间隔均衡器可以抵消信号在传输过程中受到的频率响应失真。Matlab提供了丰富的工具和函数,可以方便地实现分数间隔均衡器,并进行性能评估。分数间隔均衡器(Fractional Interval Equalizer)是一种数字信号处理技术,用于均衡带通信道中的信号失真。分数间隔均衡器的基本原理是通过对接收信号进行加权求和,以抵消信号在传输过程中受到的频率响应失真。分数间隔均衡器在通信系统中具有广泛的应用。最后,我们通过比较均衡后的信号和发送数据的阈值来进行解调,并计算误码率。

2301_79325657的博客 678

用SmartUpload实现文件上传,下载,删除

这里介绍的是用jsp+servlet实现的; jsp表单代码就不贴了,注意两个点就行: 1、表单提交必须用post方式 (method=“post”) 2、设置表单enctype属性为”multipart/form-data” 上传 //指定文件存放位置 String filePath = &amp;amp;quot;/images&amp;amp;quot;;//这里的斜杠表示项目根目录 //创建...

qq_42862882的博客 1万+

Apache Kafka Connect任意文件读取漏洞(CVE-2025-27817)

由于Apache Kafka客户端未对用户输入进行严格验证和限制,未经身份验证的攻击者可通过构造恶意配置读取环境变量或磁盘任意内容,或向非预期位置发送请求,提升REST API的文件系统/环境/URL访问权限。(CVE-2025-27817)

iSee857的博客 2026

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

一、文件上传原理1、在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制;但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定。通过为表单元素设置 method="post" enctype="multipart/form-data" 属性 ,让表单提交的数据以二进制编码的方式提交,在接受此请求的Servlet中用二进制流来获取内容,...

weixin_32340879的博客 320

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java下载文件实战_[JAVAWEB实战篇]---java文件上传和下载的网摘整理

今天,又一次看到了java的文件上传和下载的实例,总感觉,有一个万能的上传和下载组件多好,就在网上搜搜了,果然在本站的同仁,太牛逼,写了一个JSP的通用上传和下载,个人认为很好,其实吧,上传和下载和原理都是一样的,每次写的时候,都是拷贝,而且会有错误,更改起来很是头痛!下面我就总结一些不错的java的文件上传和下载的文章,在下载用到的时候,拿来参考提高效率,我将那些好的文章都down了下来会在最后...

weixin_34355933的博客 97

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最详细的文件上传下载实例详解(推荐)

        对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,strut...

mmmelody的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java中的文件上传下载

java中文件上传下载原理 学习内容 文件上传下载原理 底层代码实现文件上传下载 SmartUpload组件 Struts2实现文件上传下载 富文本编辑器文件上传下载 扩展及延伸 学习本门课程需要掌握的基础知识:JSP、JQuery、Struts2、Servlet 文件上传下载原理 文件上传原理 在TCP/IP中,最早出现的文件上传机制是FTP。它是将文件...

weixin_30783629的博客 107

java ee 上传文件_javaee-文件上传加载

文件上传文件上传前的准备在表单中必须有一个上传的控件因为 GET 方式有请求大小的限制,所以表单的提交方式必须是 POST表单默认的编码方式为 application/x-www-form-urlencoded ,应该修改为 multipart/form-data ,以二进制的形式进行数据的传输注意:此时 Servlet 中就不能再使用 request对象.getParameter(String ...

weixin_31147827的博客 455

java web 文件上传插件_javaWeb---文件上传(commons-FileUpload组件)

一、开发环境搭建创建一个FileUploadAndDownLoad项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示:二、实现文件上传2.1、文件上传页面和消息提示页面upload.jsp页面的代码如下:1 2 3 4 5 文件上传6 78 9 10 上传用户:11 上传文件1:12 ...

weixin_36193418的博客 424

文件上传下载

转自:http://www.cnblogs.com/liubin1988/p/8003848.html java文件上传和下载 java文件上传和下载 简介   文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到本地...

weixin_30839881的博客 87

java文件的上传与下载

Apache 开源组织提供了一个用来处理表单文件上传的一个开源组件( Commons-fileupload ),该组件性能优异,并且其API使用极其简单,可以让开发人员轻松实现web文件上传功能,因此在web开发中实现文件上传功能,通常使用Commons-fileupload组件实现。每一个客户端都可以进行文件上传操作,那么当我们上传的文件过多,一定会出现同名的文件,那么在服务器端只能保存一个,对于这个问题,我们在上传文件时,就需要考虑文件重名问题。通过文件上传,可以将浏览器端的大数据直接保存到服务器端。

weixin_45525177的博客 165

java 下载db文件_mongoDB——java操作mongoDB实现文件上传下载

非常感谢http://blog.youkuaiyun.com/liusong0605/article/details/11125277上篇博客讲了mongoDB处理大文件的思想及流程,下面我们看一下怎样通过java驱动来实现文件操作。mongoDB提供的java驱动封装了具体的实现细节,我们操作起来非常简单的。对文件的增加、删除和读取,通过一下几个组件来完成:GridFS:核心类,提供了对文件的创建、查找和删...

weixin_36052776的博客 612

Servlet实现文件上传和下载

  对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能...

weixin_33935505的博客 180

commons-fileUpload实现文件上传下载

目录 一、文件上传 二、文件下载 一、文件上传 (1).简介     commons-fileUpload上传组件是Apache的一个开源项目,可以到http://commons.apache.org/proper/commons-fileupload/下载最新版本(该组件需要commons-io包的支持)。该组件使用方便,同样可以实现一个或多个文件的上传,也可实现限制上传文件大小等功能...

淋雨一直走啊 6350

fileupload组件实现上传下载(下载不是组件的)

fileupload 下载地址 http://commons.apache.org/fileupload/ 另外还需 io组件的支持 http://commons.apache.org/io/  上传选择的jsp页面  文件介绍  处理的servlet public void doPost(HttpServ

ap0406708的专栏 1645
上一篇: spring与hibernate配置jar包功能详解
下一篇: java日记
java_min
博客等级 码龄18年 61粉丝 161原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值