/** * 文件上传对象 */ private File upload; private String uploadFileName; private String uploadContextType; /** * 文件上传 */ public String getUploadFileUrl() { System.out.println("upload="+upload+">>>>uploadFileName="+uploadFileName); String destfile = ""; try { if (upload != null && uploadFileName != null) { FileInputStream fis = new FileInputStream(upload); destfile = uploadFilePath + uploadFileName; File file = new File(uploadFilePath); if(!file.exists()){ file.mkdir(); } FileOutputStream fos = new FileOutputStream(destfile); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } fos.close(); fis.close(); }else{ return ""; } }catch (Exception e) { e.printStackTrace(); } return uploadFileName; }
action调用:
/** * 新建附件 * */ public String accessoryAdd() { String uploadIp = AddrIPUtil.getIpAddr(StrutsUtil.getRequest()); String uploadDate = HmsUtils.getSysTime(); String accessoryPath = super.getUploadFileUrl(); accessory.setAccessoryPath(accessoryPath); accessory.setUploadIp(uploadIp); accessory.setUploadDate(uploadDate); accessory.setIsdelete("N"); super.getAccessoryDao().addAccessory(accessory); return "show_list"; }
jsp :
<tr> <td width="25%">附件路径:</td> <td> <input type="file" id="accessoryPath" name="upload" value="" /> <span id="accessoryPath_err" style="color: red;"></span> </td> </tr>
/** * 文件下载 path:文件路径 */ public void downloadFile( String path, HttpServletResponse response) { String filePath = uploadFilePath + path; String fileName = ""; try { if(filePath.lastIndexOf("/") > 0) { fileName = new String(filePath.substring(filePath.lastIndexOf("/")+1, filePath.length()).getBytes("GB2312"), "ISO8859_1"); }else if(filePath.lastIndexOf("\\") > 0) { fileName = new String(filePath.substring(filePath.lastIndexOf("\\")+1, filePath.length()).getBytes("GB2312"), "ISO8859_1"); } }catch(Exception e) {} FileInputStream fs = null; try { fs = new FileInputStream(new File(filePath)); }catch(FileNotFoundException e) { e.printStackTrace(); return; } response.reset(); response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); int b = 0; try { PrintWriter out = response.getWriter(); while((b=fs.read())!=-1) { out.write(b); } fs.close(); out.close(); }catch(Exception e) { e.printStackTrace(); } }
action调用:
public void downloadAcc(){ String path = StrutsUtil.getParameter("path"); super.downloadFile(path, StrutsUtil.getResponse()); int id = (Integer.parseInt(StrutsUtil.getParameter("id"))); super.getAccessoryDao().updateDownloadCount(id); }
相关推荐
本项目主要展示了如何在Struts2框架下实现单个文件和多个文件的上传及下载,并且运用了多个拦截器来增强功能和安全性。 首先,让我们详细了解一下文件上传的过程。在Struts2中,文件上传主要依赖于`struts2-...
在探讨Struts2框架下如何实现单个文件、多个文件的上传与下载,以及如何配置和使用多个拦截器之前,我们首先需要理解Struts2框架的基本概念及其在Web开发中的重要性。 ### Struts2框架简介 Struts2是Apache基金会...
SpringBoot版本的SpringMVC+Freemarker上传案例,地址是localhost:8888/photo/index进入上传页面,默认是三个文件,自己可以屏蔽两个文件就是单个文件的状态了,首先在电脑的D盘新建一个upload的文件夹,...
文件上传和下载是Web应用程序中的核心功能之一,无论是用户向服务器提交个人资料、分享文档,还是从服务器获取资源,如软件更新、电子书籍等,都离不开这一操作。在这个过程中,前端与后端的交互以及数据的安全传输...
在本项目中,"springboot+vue实现超大文件分片极速上传与下载完整前后端源码",我们探讨的是一个高效、稳定的大型文件处理方案,特别适合处理GB级别的文件。这个系统结合了Spring Boot后端框架和Vue.js前端框架,以...
### SpringMVC 实现单个文件上传功能 #### 一、背景介绍 在现代Web应用开发中,文件上传是一项常见的需求。SpringMVC作为Spring框架的一部分,提供了强大的支持来处理文件上传任务。本文将详细介绍如何在SpringMVC...
在本示例中,我们将深入探讨如何利用Struts2来实现单个和多个文件的上传功能。 首先,我们需要理解文件上传的基本原理。在web应用中,文件上传通常涉及到将客户端计算机上的文件通过HTTP协议传输到服务器端。Struts...
本文将深入探讨如何实现Android平台上的多文件和单文件上传,以及图片上传的实现细节。 ### 1. 文件上传基础 #### 1.1 获取文件 在Android中,用户可以选择文件,通常通过Intent的ACTION_PICK或者ACTION_GET_...
其次,单个下载则指针对单个文件或数据项进行下载操作。这在需要精准控制每个文件获取的情况中很有用,比如用户只下载所需的部分文件或按需下载。单个下载通常涉及HTTP/HTTPS协议、文件流控制和安全性检查(如防止...
2. **初始化配置**:在JavaScript中初始化`WebUploader`对象,配置参数如`server`(后端接口地址)、`fileNumLimit`(最大上传文件数量)、`fileSingleSizeLimit`(单个文件大小限制)等。 3. **事件监听**:监听`...
本文档将详细解析一段JavaScript代码,该代码实现了通过JavaScript上传单个文件的功能,并对代码进行逐行分析,帮助读者深入理解其实现机制。 #### 二、核心概念 1. **XMLHttpRequest**:用于创建异步请求对象,...
在Web应用中,传统的文件上传一般只支持单个文件操作,但随着需求的发展,多文件上传功能变得越来越常见。这通常通过HTML5的`<input type="file" multiple>`属性实现,用户可以在浏览器中选择多个文件进行上传。在...
在Flex中实现单个文件上传是一项常见的功能,对于构建支持用户交互的Web服务至关重要。以下是对Flex单个文件上传的详细解释: 1. **组件使用**:在Flex中,我们可以使用`FileReference`类来处理文件上传。`...
在Web应用程序中,传统的HTML表单仅支持单个文件上传,而Flash通过其ActionScript编程语言和灵活的API,可以轻松地处理多个文件的选择和上传。这个功能通常涉及到以下几个关键知识点: 1. **ActionScript**:...
### 使用JSP组件实现文件上传与下载:深入解析与应用 #### 一、核心知识点概览 本文将深度解析如何利用`jspSmartUpload`组件在JSP环境下实现文件的上传与下载功能。`jspSmartUpload`组件是一个强大的工具,特别...
其实现方式与单个文件上传类似,但需要做一些额外的调整以支持多文件的选择和处理。 ##### JSP 页面设计 对于多文件上传,我们需要稍微修改JSP页面上的表单,以便用户可以选择多个文件。可以通过添加`multiple`...
通过浏览按钮,选择需要上传的文件,点击控件上传按钮而实现的上传
在Struts2中实现单个文件上传是一项常见的任务,它允许用户通过网页选择本地文件并将其上传到服务器。这个“Struts2单个文件上传”示例提供了完整的功能,包括对上传文件大小和类型的限制,确保了服务端的安全性。 ...
本实验报告将详细阐述如何利用SpringMVC实现文件上传与下载的功能。 首先,文件上传的核心在于HTML表单(form)的正确配置。在创建用于上传文件的表单时,需要指定`enctype`属性为`multipart/form-data`。这是因为...
包括同时上传多个附件,支持多个附件同时上传,一次同步上传文件个数设置,单个文件上传大小限制,同时上传附件个数限制,支持上传附件格式等功能,大家可以到官网或其他网站查找Uploadify更多的帮助文档了解更多的...