`
gtgt1988
  • 浏览: 114275 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

上传和下载

 
阅读更多

下载代码大致如下

<%@ page pageEncoding="UTF-8"%><%

	request.setCharacterEncoding( "UTF-8"); 
	
	String id = request.getParameter("noticeId");
	
	String fileNameTemp = request.getParameter("fileName");
	String theFileName= java.net.URLDecoder.decode(java.net.URLDecoder.decode(fileNameTemp,"UTF-8"),"UTF-8"); 
	System.out.println(id +"--下载--"+ theFileName +"----" );		
	//theFileName=java.net.URLEncoder.encode(request.getParameter("fileName"),"utf-8"); 
	
	
	
	
	try{ 
		    //String   tempStr=theFileName; 
		 
		   // byte[]   temp_t=tempStr.getBytes( "ISO8859_1"); 
		   // String   temp=new   String(temp_t,"gbk"); 
		   // theFileName = temp;
		       
			
			
			// 得到文件名字和路径
			String rootPath = System.getenv("NMS_COLLTER_DATA");
			System.out.println(id +"--下载--"+ theFileName +"----" + rootPath);			
			if(rootPath==null||"".equals(rootPath)||"null".equals(rootPath)){}
			String targetDirectory = rootPath+ "/" +theFileName ;
						

			
			// 设置响应头和下载保存的文件名
			response.setContentType("APPLICATION/OCTET-STREAM");
			response.setHeader("Content-disposition","attachment;filename="+new String(theFileName.getBytes("gb2312"),"iso8859-1"));
			
			// 打开指定文	件的流信息
			java.io.FileInputStream fileInputStream = new java.io.FileInputStream(targetDirectory);
			//new java.io.FileInputStream(filepath + filename);
			
			// 写出流信息
			int i;
			
			while ((i=fileInputStream.read()) != -1) {
				//out.write(i);
				response.getOutputStream().write(i); 
			}
			fileInputStream.close();
			 	//out.close();
			response.getOutputStream().close();
	
	}catch(Exception   e){ 
           System.out.println("下载公告附件出错");
           e.printStackTrace();
    }finally{
		   // fileInputStream.close();
		    response.getOutputStream().close();
		   // out.print("<br/>下载公告附件出错!文件找不到!");
		   // out.close();
    }
%>














上传代码大致如下





public class FileUpLoadAction extends ActionSupport
{
  private static final long serialVersionUID = 1L;
  private String jsonStr;
  private File file;
  private String fileFileName;

  public String uploadFile()
    throws Exception
  {
    String result = "";
    try {
      System.out.println("进入方法");
      System.out.println("fileName:" + this.fileFileName);
      System.out.println("file" + this.file.getName());
      String rootPath = System.getenv("NMS_COLLTER_DATA");

      if ((rootPath == null) || ("".equals(rootPath)) || ("null".equals(rootPath))) {
        result = "{success:false,message:'环境变量<NMS_COLLTER_DATA>没有定义'}";
        System.out.println("找不到路径");
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter pw = response.getWriter();
        pw.write(result);
        pw.flush();
        pw.close();
        this.jsonStr = result;
        return "success";
      }
      String targetDirectory = rootPath + "/";
      System.out.println("targetDirectory:" + targetDirectory);
      File uploadPath = new File(targetDirectory);
      if (!(uploadPath.exists()))
        uploadPath.mkdirs();

      String targetFileName = generateFileName(this.fileFileName);

      System.out.println("targetFileName:" + targetFileName);
      File target = new File(targetDirectory, targetFileName);
      InputStream in = new BufferedInputStream(new FileInputStream(this.file));
      OutputStream ous = new BufferedOutputStream(new FileOutputStream(target));
      System.out.println("复制文件开始");
      Streams.copy(in, ous, true);
      System.out.println("复制文件结束");
      DecimalFormat digits = new DecimalFormat("###.00");
      double len = target.length() / 1048576.0D;
      result = "{success:true,message:'完成:" + digits.format(len) + "MB',realFileName:'" + targetFileName + "'}";
    }
    catch (IOException io) {
      result = "{success:false,message:'文件长度过大',realFileName:'无文件'}";
    }
    catch (Exception e) {
      e.printStackTrace();
      result = "{success:false,message:'文件上传失败',realFileName:'无文件'}";
    }
    HttpServletResponse response = ServletActionContext.getResponse();
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter pw = response.getWriter();
    pw.write(result);
    pw.flush();
    pw.close();
    this.jsonStr = result;
    return "success";
  }
 
分享到:
评论

相关推荐

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

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

    上传和下载系统 上传和下载系统

    10. **日志记录**:跟踪和记录每一次上传下载活动,便于故障排查和审计。 在实现这些功能时,开发者通常会使用HTTP或FTP协议,有时也会用到WebDAV等更高级的协议。服务器端可能采用如Node.js、Python Flask、Java ...

    jsp文件的上传和下载

    在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...

    文件上传和下载的常见测试点

    文件上传和下载测试点总结 文件上传和下载是许多应用程序和网站的基本功能之一,在进行测试时需要考虑多个方面的测试点,以下是文件上传和下载的常见测试点: 下载测试点 1. 右键另存为是否可以正确下载文件,...

    西门子博图软件程序上传和下载SOP

    ### 西门子博图软件程序上传和下载标准操作流程(SOP) #### 一、程序备份 在进行任何程序上传或下载之前,确保对现有程序进行完整的备份是非常重要的步骤。这一步骤能够帮助用户避免因操作失误而导致的数据丢失。...

    jsp实现上传和下载

    在提供的压缩包文件中,"down"和"load"可能是两个关键的目录或文件,它们可能分别代表了下载和上传的实现代码或者示例。通常,一个Web项目会包含Web-INF目录,其中存放web.xml配置文件,定义Servlet和JSP的映射关系...

    各种.net上传和下载文件源码

    在.NET框架中,文件的上传和下载是Web应用程序中常见的功能,特别是在开发涉及用户交互的网站或服务时。本资源的标题"各种.net上传和下载文件源码"表明,它提供了一系列与文件操作相关的源代码示例,涵盖了图片、...

    java文件上传和下载功能

    在Java编程领域,文件上传和下载是Web应用中常见的功能,尤其在用户交互丰富的网站或系统中。本项目通过一个简单的源码实例,演示了如何实现在JSP(JavaServer Pages)界面上处理文本和图片的上传与下载,涵盖了相关...

    文件的上传和下载

    在IT行业中,文件的上传和下载是Web应用中不可或缺的一部分,尤其在Java开发中,这一功能的实现至关重要。本文将详细讲解如何使用Java来实现文件的上传和下载操作。 首先,我们来了解一下文件上传的基本流程。文件...

    Qt5.8用FTP实现文件上传和下载(带进度条)

    在本文中,我们将深入探讨如何使用Qt5.8框架通过FTP协议实现文件的上传和下载功能,同时结合进度条来实时展示操作进度。Qt是一个功能强大的C++库,提供了丰富的图形用户界面(GUI)工具和网络通信接口,使得开发者...

    linux系统怎么用SecureCRT上传和下载文件?.docx

    使用 SecureCRT 上传和下载文件非常方便,只需要安装 rz 和 sz 命令,设置上传和下载的默认目录,然后使用 sz 和 rz 命令来上传和下载文件。同时,需要注意上传文件时的注意事项,以避免文件上传失败。

    Delphi上传和下载文件

    详细记录了整个Delphi上传和下载文件的整个过程,同时提供了源码,有兴趣的亲们可以试试

    java代码实现文件上传和下载

    在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字

    web上实现类似ftp客户端上传和下载

    FTP客户端通常具备登录服务器、浏览目录、上传、下载和管理文件等能力。在Web环境中,我们通常不会直接使用FTP协议,而是采用更安全的SFTP(Secure File Transfer Protocol)或FTPS(FTP over SSL/TLS)。 实现Web...

    SpringMVC框架实现文件的上传和下载

    在SpringMVC框架中,文件的上传和下载是常见的功能需求,主要用于处理用户的数据交互,例如用户上传图片、文档等,或者系统提供文件下载服务。本文将深入探讨如何使用SpringMVC来实现这一功能。 首先,我们需要理解...

    TFTP多线程上传和下载

    TFTP多线程上传和下载, 这是Part1. 还有Part2

    PHP文件上传和下载

    在PHP中,文件上传和下载是两个非常重要的功能,它们在Web开发中有着广泛的应用,例如用户上传头像、分享文件或下载资源等。本文将详细介绍如何使用PHP实现这两个功能。 首先,我们从文件上传开始。PHP提供了`$_...

    Servlet文件上传和下载

    JavaServlet文件上传和下载,java初学者笔记!

    ssh文件上传和下载

    ssh下实现用户登陆 管理文件 文件的上传与下载

Global site tag (gtag.js) - Google Analytics