下载代码大致如下
<%@ 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 ...
在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...
文件上传和下载测试点总结 文件上传和下载是许多应用程序和网站的基本功能之一,在进行测试时需要考虑多个方面的测试点,以下是文件上传和下载的常见测试点: 下载测试点 1. 右键另存为是否可以正确下载文件,...
### 西门子博图软件程序上传和下载标准操作流程(SOP) #### 一、程序备份 在进行任何程序上传或下载之前,确保对现有程序进行完整的备份是非常重要的步骤。这一步骤能够帮助用户避免因操作失误而导致的数据丢失。...
在提供的压缩包文件中,"down"和"load"可能是两个关键的目录或文件,它们可能分别代表了下载和上传的实现代码或者示例。通常,一个Web项目会包含Web-INF目录,其中存放web.xml配置文件,定义Servlet和JSP的映射关系...
在.NET框架中,文件的上传和下载是Web应用程序中常见的功能,特别是在开发涉及用户交互的网站或服务时。本资源的标题"各种.net上传和下载文件源码"表明,它提供了一系列与文件操作相关的源代码示例,涵盖了图片、...
在Java编程领域,文件上传和下载是Web应用中常见的功能,尤其在用户交互丰富的网站或系统中。本项目通过一个简单的源码实例,演示了如何实现在JSP(JavaServer Pages)界面上处理文本和图片的上传与下载,涵盖了相关...
在IT行业中,文件的上传和下载是Web应用中不可或缺的一部分,尤其在Java开发中,这一功能的实现至关重要。本文将详细讲解如何使用Java来实现文件的上传和下载操作。 首先,我们来了解一下文件上传的基本流程。文件...
在本文中,我们将深入探讨如何使用Qt5.8框架通过FTP协议实现文件的上传和下载功能,同时结合进度条来实时展示操作进度。Qt是一个功能强大的C++库,提供了丰富的图形用户界面(GUI)工具和网络通信接口,使得开发者...
使用 SecureCRT 上传和下载文件非常方便,只需要安装 rz 和 sz 命令,设置上传和下载的默认目录,然后使用 sz 和 rz 命令来上传和下载文件。同时,需要注意上传文件时的注意事项,以避免文件上传失败。
详细记录了整个Delphi上传和下载文件的整个过程,同时提供了源码,有兴趣的亲们可以试试
在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字
FTP客户端通常具备登录服务器、浏览目录、上传、下载和管理文件等能力。在Web环境中,我们通常不会直接使用FTP协议,而是采用更安全的SFTP(Secure File Transfer Protocol)或FTPS(FTP over SSL/TLS)。 实现Web...
在SpringMVC框架中,文件的上传和下载是常见的功能需求,主要用于处理用户的数据交互,例如用户上传图片、文档等,或者系统提供文件下载服务。本文将深入探讨如何使用SpringMVC来实现这一功能。 首先,我们需要理解...
TFTP多线程上传和下载, 这是Part1. 还有Part2
在PHP中,文件上传和下载是两个非常重要的功能,它们在Web开发中有着广泛的应用,例如用户上传头像、分享文件或下载资源等。本文将详细介绍如何使用PHP实现这两个功能。 首先,我们从文件上传开始。PHP提供了`$_...
JavaServlet文件上传和下载,java初学者笔记!
ssh下实现用户登陆 管理文件 文件的上传与下载