Java Struts2下载文件

Java Web应用中Apache、Struts1和Struts2的文件上传下载技术解析 本文还有配套的精品资源,点击获取 简介:在Java Web开发中,文件上传下载功能不可或缺,尤其是对于处理大量数据和多媒体资源。Apache的Commons FileUpload、Struts1和Struts2作为流行的Java Web框架,提供了各自的文件处理方法。本文将深入探讨使用这三种技术实现文件上传和下载的过程,包括关键代码示例和解决方案。同时,还将涵盖在实际应用中... 阅读详情

html:

<form  name="deleteUserForm" method="post" enctype="multipart/form-data">
///////////
</form>
<button id="download">下载</button>
$().ready(function(){
  $("#download")
	.button()
	.click(
		function(){
			deleteUserForm.action = "downloadFile.action";
			deleteUserForm.submit(); 
		}
	);		
});
struts.xml

<action name="downloadFile" class="userAction" method="downloadFile">  
   <result name="success" type="stream">  
       <param name="contentDisposition">   
          attachment;filename="${fileName}"  
      </param> 
      <param name="inputName">downloadFileStream</param>   
   </result>   
</action> 
UserAction

private String fileName;
public String getFileName() {
	SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-DD");
	String fileName = sf.format(new Date()).toString() + ".xls";
	try {
		fileName = new String(fileName.getBytes(),"utf-8");
	} catch (Exception e) {
		e.printStackTrace();
	}
	return fileName;
}
public void setFileName(String fileName) {
	this.fileName = fileName;
}

public String downloadFile(){
	return SUCCESS;
}
public InputStream getDownloadFileStream(){
	String directory = "/upload";
	String targetDirectory = ServletActionContext.getServletContext().getRealPath(directory);
	try {
		return new FileInputStream(new File(targetDirectory, uploadFileFileName));
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return null;
}

struts.xml 中fileName 对应 action中fileName, downloadStream对应action中 getDownloadStream, get方法首字母小写。

根据路径+文件名,返回文件流。

fileName可直接根据时间设置,也可以根据目录列出文件名获取。

fileList = getfiles(getdbName);  
  
public  String getfiles(String dbDir){  
//       String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();   
//       System.out.println(t);  
//          if(t.indexOf("WEB-INF")>0)  
//              t = t.substring(1,t.indexOf("/WEB-INF/classes"));  
    String t ="C:/DB_Backup";  
    if(dbDir != null && !dbDir.equals("")){  
            t +="/"+dbDir;                
    }  
    String  str = readFile(t);   
    return str;          
}  
public String readFile(String fileName) {   
       String output = "";   
       File file = new File(fileName);   
                 
       if(file.exists()){   
           if(file.isFile()){   
               try{   
                   BufferedReader input = new BufferedReader (new FileReader(file));   
                   StringBuffer buffer = new StringBuffer();   
                   String text;   
                   while((text = input.readLine()) != null)   
                   buffer.append(text +"\n");   
                   output = buffer.toString();                       
            } catch(IOException ioException){   
                  System.err.println("File Error!");   
            }   
        } else if(file.isDirectory()){   
            String[] dir = file.list();   
            //     output += "Directory contents:\n";   
                      
           for(int i=0; i<dir.length; i++){   
                 output += dir[i] +",";   
           }   
        }   
    } else{   
          System.err.println("Does not exist!");   
    }   
    return output;   
}




Cosmos Transfer2.5多模态AI模型部署与优化实战 多模态AI技术通过融合文本、图像、代码等不同模态数据,实现跨模态理解与生成。其核心原理基于Transformer架构的注意力机制,结合对比学习实现模态对齐。这类技术在智能内容创作、跨模态搜索等领域具有重要价值,尤其适合电商营销图文生成、UI设计转代码等场景。Cosmos Transfer2.5作为先进的多模态模型,支持8192 tokens长文本窗口和混合模态输入,实测推理速度达17.5 samples/s(T4显卡)。部署时需注意FlashAttention优化可提升3倍长文本处理效率,8-bit量化则能 阅读详情

相关推荐

Mplus—随机截距交叉滞后模型(RI-CLPM)语法

随机截距交叉滞后模型RI-CLPM的Mplus语法。

m0_54401011的博客 2532

java struts2下载文件_java struts2入门学习---文件下载的二种方式

一.关于文件下载:文件下载的核心思想即是将文件从一个地方拷贝到另一个地方.1.传统方式:在Action中加入大量servlet api 操作.优点是好理解,缺点是耦合度高。2.stream方式:使用struts2中的stream拦截器进行操作二.实例:我这里用的是maven,贴出pom.xml:4.0.0com.amosstruts2_learnwar0.0.1-SNAPSHOTstruts2_l...

weixin_30744857的博客 300

银河麒麟V10 SP1忘记密码?3分钟搞定单用户模式密码重置(附详细截图)

本文详细介绍了银河麒麟V10 SP1操作系统忘记登录密码后的应急恢复方法。核心是通过GRUB引导菜单进入单用户模式,无需密码即可获得root权限,从而快速重置用户密码。文章提供了从捕捉GRUB界面、编辑启动参数到执行密码修改命令的完整步骤图解与常见问题解决方案,帮助用户在几分钟内恢复系统访问。

w3x4y的博客 916

java action文件下载_java和Struts2实现文件下载和上传详解

本程序是通过java和struts2先实现把文件上传到服务器或者是存储到硬盘,然后把该文件下载下来:一:首先是struts2配置文件:result返回类型一定要写成type="stream"text/plainattachment;fileName="${fileName}"downloadFile1024二:然后是action类:package upload.action;import java...

weixin_35648203的博客 239

三、STM32F103ZET6最小系统

stm32最小系统除去主控CPU外,需要包含,电源电路,复位电路,BOOT电路,时钟电路(因为stm32有内置时钟,对时钟要求不高的话,可以不要)。NRST引脚其实芯片已经用一个约40K的电阻上拉了,所以理论上来说是不需要再外接上拉电阻的,但我看大家都是有外接上拉的,心里没有底,不管这么多,先预留着。吃过亏,特意查看了芯片手册资料,下图是官方建议的供电方案,图片来自stm32f103zet6数据手册。首先明白目标,单纯的学习软件知识并不是我希望的,我还希望会硬件设计,这样后面才能摆脱开发板。

sevendecsdn的博客 6454

基于Playwright的雪球网股票情绪数据自动化采集实战

网络爬虫是自动化获取互联网公开数据的关键技术,其核心原理在于模拟浏览器行为或直接发送HTTP请求以解析网页内容。在金融科技与量化分析领域,实时、稳定的数据源具有极高的技术价值,能够为市场情绪分析、因子挖掘提供基础。面对采用动态加载、复杂反爬机制的现代单页应用,传统的请求库与Selenium方案在稳定性与隐蔽性上面临挑战。本文聚焦于利用Playwright这一现代浏览器自动化工具,通过模拟真实用户交互、监听网络请求,构建一个能够稳定采集雪球社区实时讨论热度的解决方案。该方案不仅解决了动态内容渲染问题,还通过请

weixin_42529328的博客 585

java struts2下载文件_Java Struts2下载文件

html:///////////下载$().ready(function(){$("#download").button().click(function(){deleteUserForm.action = "downloadFile.action";deleteUserForm.submit();});});struts.xmlattachment;filename="${fileName}"d...

weixin_33219360的博客 185

5分钟搞定:用Ollama在MacBook上本地运行Qwen3大模型(附避坑指南)

本文详细介绍了如何在MacBook上使用Ollama快速部署和运行Qwen3大模型,包括安装步骤、性能优化技巧及常见问题解决方案。Ollama作为一款轻量级工具,特别适合M系列芯片的Mac用户,支持多种量化版本,显著降低资源消耗,提升推理速度。

sql99的博客 822

java struts 文件下载_Struts2文件下载实例

通过《Struts2文件下载简介》教程的学习,读者已经了解了使用 Struts2 框架实现在指定的目录中下载指定文件的功能。下面通过案例演示文件下载功能。1)创建下载页面在struts2Demo06 项目的WebContent 目录下创建一个名称为 download.jsp 的页面文件,在文件中添加一个用于文件下载的链接,其主要代码如下所示:test.txt2)创建 Action在 com.m...

weixin_42447681的博客 237

告别unittest!用Pytest+Fixture重构你的Python测试代码(附实战案例)

本文详细介绍了如何从unittest迁移到Pytest框架,重点解析了Pytest的Fixture机制如何提升测试效率和代码简洁性。通过实战案例展示了Pytest在减少代码量、提升调试效率和资源管理方面的优势,帮助开发者重构Python测试代码。

weixin_26749245的博客 206

使用 Ansys Q3D 进行电容提取

精确的电容提取在高速和 RF 设计中至关重要。在本博客中,我们演示了如何使用Ansys Q3D Extractor来计算电容值,从基本的平行板电容器开始,然后转到MEMS芯片的切口,以检查焊盘和RF线对整体电容的影响。在下面的比较中,我们使用 Q3D 从 MEMS 芯片切口中提取两种配置的电容矩阵:一种仅带有焊盘,另一种带有连接到 RF 线路的焊盘。这种比较表明,焊盘是总电容的主要贡献者,而 RF 线路则略有增加。按照上述工作流程,提取焊盘的电容,得到的电容矩阵如下所示。,选择一个已识别的网络,然后单击。

jkh920184196的博客 1814

java ee文件下载_JavaEE基础 Struts2实现下载各种文件

本篇JavaEE基础教程将为大家讲解JavaEE基础编程的知识点,看完这篇文章会让你对JavaEE基础编程的知识点有更加清晰的理解和运用。struts2实现下载各种文件1、struts.xml1.2.strutsPUBLIC3."-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//E...

weixin_28918553的博客 218

Qemu开发ARM篇-5、buildroot制作根文件系统并挂载启动

在上一篇中,我们编译了kernel,并在qemu上进行了运行,但到最后,在挂载根文件系统时候,挂载失败,这是因为我们还没有根文件系统,在本章中,我们将制作根文件系统。rootfs制作方式有很多方式,如busyBoxbuildrootYocto等,在该篇章中,我们使用buildroot来制作根文件系统,主要考虑到busyBox制作完还需要手动首改一些启动配置比较繁琐,而Yocto如果电脑配置不是很好,编译时间过长,比较麻烦。

sinat_33909696的博客 2465

java struts2下载zip_Struts2多文件下载

使用场景:1)在JSP页面,有一个展现附件的列表。2)对列表中的每一个附件,提供单独下载。3)同时提供复选框,提供选择多个文件下载。实现思路:1)写一个通用的具有下载功能的Action,只需要接收一个文件路径就可以下载。单个附件的下载直接调用这个Action,只需要传递附件的路径即可。2)多个文件下载,可以将多个文件的路径传递到一个处理Action,将多个文件打包成zip。然后重定向到通用的下载A...

weixin_34864191的博客 232

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

STM32F407中文手册

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

java struts2文件上传,java 基于Struts2的 文件上传跟下载

java 基于Struts2的 文件上传和下载文件上传:页面代码:action中代码:String uploadPath =ServletActionContext.getServletContext().getRealPath("/reviseUpload")+ "\\" + this.getMyFileFileName();File toFile =new File(uploadPath);i...

weixin_33952612的博客 125

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java struts2 excel上传_java中struts2实现文件上传下载功能实例解析

本文实例讲述了java中struts2实现文件上传下载功能实现方法。分享给大家供大家参考。具体分析如下:1.文件上传首先是jsp页面的代码在jsp页面中定义一个上传标签附件:然后是BaseAction中定义的相关属性其它的就省略了(也可定义在自己的Action,换下访问修饰符即可)/***Action基类**/public class BaseAction extends ActionSuppo...

weixin_42554394的博客 331

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java struts2 文件下载,Struts2文件下载

一个简单的利用struts2做文件下载的demo……首先配好struts:web.xmlxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.s...

weixin_29864813的博客 261

java struts 文件下载_struts2实现文件下载功能

文件下载是一个很常见的功能,用struts2实现文件下载的步骤:一)、定义一个Action类,FileDownload.javapackage com.struts2.filedownload;import java.io.InputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork...

weixin_42365065的博客 521

java struts2下载文件_java struts2 的 文件下载

jsp:pageEncoding="UTF-8"%>Insert title here点击下载struts.xmltext/plaininputStreamattachment;filename="${downloadFileName}"4096com.hdsx.gzgispf.controller.FileDownloadAction :/*** 处理带中文的文件名(可设置下载文件名)*...

weixin_42221297的博客 124

java之struts2之文件下载

1.在实际应用开发中,文件下载功能也非常常见。 2.最简单的文件下载方式是通过超链接来进行文件下载: <body> <a href="download/s.txt">课件</a><br/> <a href="download/t.jpg">美女</a><br/> &l...

weixin_30768661的博客 269

java struts2下载文件_java struts2 (注解方式) 文件下载

package com.jshop.action;import java.io.FileInputStream;import java.io.File;import java.io.InputStream;import java.io.UnsupportedEncodingException;import org.apache.struts2.convention.annotation.Actio...

weixin_42134234的博客 154

java struts2下载文件_struts2实现简单文件下载功能

Struts2提供了stream结果类型,该结果类型是专门用于支持文件下载功能的。配置stream类型的结果需要指定以下4个属性。contentType:指定被下载文件的文件类型inputName:指定被下载文件的入口输入流contentDisposition:指定下载的文件名bufferSize:指定下载文件时的缓冲大小struts2文件下载示例:1.处理文件下载的Action:/*** Des...

weixin_34688966的博客 394

java struts 文件下载_关于Struts2的文件下载

首先先来说下关于文件下载的原理:服务端为客户端提供了一个下载服务,所以服务端需要一个输出流(把客户请求下载的文件输出),相对于服务端来说,客户端需要下载接收一个文件,所以它需要一个输入流(接收文件)。服务器读取要下载文件的内容,用一个Response响应流写回并设置HTTP头信息ContentType(文件类型)、ContentDisposition(以什么方式打开)下面给出一个小Demo,具体...

weixin_39851408的博客 196

java struts2上传文件_java中struts2实现文件上传下载功能

先谈一谈struts2实现文件的上传和下载实例实现的原理:Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。具体实现:一、创建index.jsp页面选择上传文件测试.txt下载...

weixin_35076078的博客 246

java struts2下载文件_Struts2下多文件的上传与下载

Struts2下多文件的上传与下载目录多文件 上传 下载 随意文件java Struts2单例 配置 动态读取 李顺利在网络上,对于Java处理文件上传和下载的技术比较多,而Struts作为一款优秀的框架也提供了非常方便的文件上传和下载,而网上的一些例程都非常的不全面,概括来:1)文件上传比较多,多文件上传少一点2)文件下载很少的,看似简单,实则不然3)文件下载一般都是单文件或者固定的文件,并没有...

weixin_32247455的博客 247

java struts 文件下载_Struts2学习之文件下载

前言上一篇文章总结了上传,说完上传,那就不得不说说下载了。说到下载,就要先看看《Struts2学习之结果类型总结》这篇文章中总结的结果类型了。Struts2提供了stream结果类型,该结果类型就是专门用于支持文件下载功能的。指定stream结果类型时,需要指定一个inputName参数,该参数指定了一个输入流,这个输入流是被下载文件的入口。通过Struts2的文件下载支持,允许系统控制浏览者下载...

weixin_34510298的博客 188
上一篇: 头像图片显示---数据库中保存路径 图片上传到工作目录下
下一篇: 一台机器同时运行两个Tomcat
learnTech
博客等级 码龄14年 10粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值