`
sungang_1120
  • 浏览: 325306 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

单个文件上传与下载实现

 
阅读更多
/**
     * 文件上传对象
     */
    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,实现单个文件,多个文件,上传与下载,多个拦截器

    在探讨Struts2框架下如何实现单个文件、多个文件的上传与下载,以及如何配置和使用多个拦截器之前,我们首先需要理解Struts2框架的基本概念及其在Web开发中的重要性。 ### Struts2框架简介 Struts2是Apache基金会...

    SpringBoot+SpringMVC+Freemarker实现单个上传和多个文件上传

    SpringBoot版本的SpringMVC+Freemarker上传案例,地址是localhost:8888/photo/index进入上传页面,默认是三个文件,自己可以屏蔽两个文件就是单个文件的状态了,首先在电脑的D盘新建一个upload的文件夹,...

    文件上传和下载文件上传和下载文件上传和下载

    文件上传和下载是Web应用程序中的核心功能之一,无论是用户向服务器提交个人资料、分享文档,还是从服务器获取资源,如软件更新、电子书籍等,都离不开这一操作。在这个过程中,前端与后端的交互以及数据的安全传输...

    springboot+vue实现超大文件分片极速上传与下载完整前后端源码

    在本项目中,"springboot+vue实现超大文件分片极速上传与下载完整前后端源码",我们探讨的是一个高效、稳定的大型文件处理方案,特别适合处理GB级别的文件。这个系统结合了Spring Boot后端框架和Vue.js前端框架,以...

    Spring下的子框架SpringMVC实现单个文件上传功能

    ### SpringMVC 实现单个文件上传功能 #### 一、背景介绍 在现代Web应用开发中,文件上传是一项常见的需求。SpringMVC作为Spring框架的一部分,提供了强大的支持来处理文件上传任务。本文将详细介绍如何在SpringMVC...

    struts2实现单个和多个文件上传示例代码

    在本示例中,我们将深入探讨如何利用Struts2来实现单个和多个文件的上传功能。 首先,我们需要理解文件上传的基本原理。在web应用中,文件上传通常涉及到将客户端计算机上的文件通过HTTP协议传输到服务器端。Struts...

    android 文件上传(多个或单个),图片上传

    本文将深入探讨如何实现Android平台上的多文件和单文件上传,以及图片上传的实现细节。 ### 1. 文件上传基础 #### 1.1 获取文件 在Android中,用户可以选择文件,通常通过Intent的ACTION_PICK或者ACTION_GET_...

    批量 上传 单个 下载

    其次,单个下载则指针对单个文件或数据项进行下载操作。这在需要精准控制每个文件获取的情况中很有用,比如用户只下载所需的部分文件或按需下载。单个下载通常涉及HTTP/HTTPS协议、文件流控制和安全性检查(如防止...

    webuploader + springboot实现大文件的上传下载

    2. **初始化配置**:在JavaScript中初始化`WebUploader`对象,配置参数如`server`(后端接口地址)、`fileNumLimit`(最大上传文件数量)、`fileSingleSizeLimit`(单个文件大小限制)等。 3. **事件监听**:监听`...

    js上传单个文件.txt

    本文档将详细解析一段JavaScript代码,该代码实现了通过JavaScript上传单个文件的功能,并对代码进行逐行分析,帮助读者深入理解其实现机制。 #### 二、核心概念 1. **XMLHttpRequest**:用于创建异步请求对象,...

    多文件上传的实现,简单的上传与下载,完整的上传下载程序

    在Web应用中,传统的文件上传一般只支持单个文件操作,但随着需求的发展,多文件上传功能变得越来越常见。这通常通过HTML5的`&lt;input type="file" multiple&gt;`属性实现,用户可以在浏览器中选择多个文件进行上传。在...

    Flex 单个文件上传

    在Flex中实现单个文件上传是一项常见的功能,对于构建支持用户交互的Web服务至关重要。以下是对Flex单个文件上传的详细解释: 1. **组件使用**:在Flex中,我们可以使用`FileReference`类来处理文件上传。`...

    flash 实现的多文件上传

    在Web应用程序中,传统的HTML表单仅支持单个文件上传,而Flash通过其ActionScript编程语言和灵活的API,可以轻松地处理多个文件的选择和上传。这个功能通常涉及到以下几个关键知识点: 1. **ActionScript**:...

    用组件实现的上传与下载.doc

    ### 使用JSP组件实现文件上传与下载:深入解析与应用 #### 一、核心知识点概览 本文将深度解析如何利用`jspSmartUpload`组件在JSP环境下实现文件的上传与下载功能。`jspSmartUpload`组件是一个强大的工具,特别...

    struts2实现文件上传(单个+多个文件上传

    其实现方式与单个文件上传类似,但需要做一些额外的调整以支持多文件的选择和处理。 ##### JSP 页面设计 对于多文件上传,我们需要稍微修改JSP页面上的表单,以便用户可以选择多个文件。可以通过添加`multiple`...

    C#服务器控件FileUpLoad实现单个文件上传到服务端

    通过浏览按钮,选择需要上传的文件,点击控件上传按钮而实现的上传

    Struts2单个文件上传

    在Struts2中实现单个文件上传是一项常见的任务,它允许用户通过网页选择本地文件并将其上传到服务器。这个“Struts2单个文件上传”示例提供了完整的功能,包括对上传文件大小和类型的限制,确保了服务端的安全性。 ...

    JavaEE企业级开发-----SpringMVC实现 文件的上传下载实验报告.docx

    本实验报告将详细阐述如何利用SpringMVC实现文件上传与下载的功能。 首先,文件上传的核心在于HTML表单(form)的正确配置。在创建用于上传文件的表单时,需要指定`enctype`属性为`multipart/form-data`。这是因为...

    jsp附件上传模块,JS实现文件上传功能

    包括同时上传多个附件,支持多个附件同时上传,一次同步上传文件个数设置,单个文件上传大小限制,同时上传附件个数限制,支持上传附件格式等功能,大家可以到官网或其他网站查找Uploadify更多的帮助文档了解更多的...

Global site tag (gtag.js) - Google Analytics