引用
本来想写一个关于解决struts做视频上传下载时,各种问题异常的解决方案,但是上传要写的太多了,懒呀,这里只写了个下载的例子及说明(以后有时间了再写上传视频的)。
先罗列一下上传及下载的常见问题吧:
上传:
一.上传
1。如何统计上传文件多大及已经上传多少(统计客户端向临时文件写的大小而不是文件服务器)?
2。如果上传文件大于struts2最大要求,如何给用户一个快速国际化的提示信息而不是等半天才提示
3。当用户点击取消按钮时,如何停止上传动作(用户点击取消的一瞬间,服务器端有可能正向文件服务器写入上传的文件,也有可能文件上传已经完成,正调用外部应用程序进行视频格式的转换或获取视频的截图【关键是这第二个可能,就是点击取消按钮的同时将外部程序这个子进程也杀掉】)
二.下载
1。用户取消问题
2。乱码,特殊符号问题及空格变加号
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.xwork.StringUtils;
public class DownloadFileUtils {
//文件存放的目录
public static String saveFileURL;
/**
* 根据上传文件获取其真实读取路径
* @param response
* @param downloadRealName
* 服务器端文件的实际名字
* @param fileSource
* 服务器端存放文件的目录
* @param fileSrcName
* 存放文件的文件夹
* @param fileName
* 下载后文件的名字
* @return
* @throws IOException
*/
public static String downloadFile(HttpServletRequest request,HttpServletResponse response,
String downloadRealName, String fileSrcName, String fileName) {
InputStream fis = null;
OutputStream toClient = null;
try {
String path = saveFileURL
+ "\\"+fileSrcName
+ "\\"+downloadRealName+fileName.substring(fileName.lastIndexOf("."), fileName.length());
System.out.println("downloadPath----->" + path);
File file = new File(path);
if (!file.exists()) {
return null;
}
分享到:
相关推荐
彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题 本文用 C# 代码解决了在目前四种流行浏览器中Asp.net 输出文件流时文件名的空格及中文字符乱码这两个问题。使用本文的代码,你将可以让 IE...
当在PyCharm中打开包含中文字符的YAML文件时,可能会遇到层级结构显示异常的问题,具体表现为中文字符无法正确显示或者显示为乱码。这会影响到代码的可读性和维护性。 #### 解决办法 1. **调整PyCharm中的字体设置*...
本文将详细介绍如何在Java中处理导出文件时的文件名问题,确保用户能够正常下载带有中文或其他特殊字符的文件名。 #### 知识点一:理解文件名编码问题 在Web应用中,当服务器向客户端发送文件时,HTTP协议中会包含...
文本整理器V3.0是一款专门针对文本处理的软件,主要功能是清除文本中的全角空格和半角空格,以优化文本内容并解决从网络下载的源代码可能存在的格式问题。在IT行业中,源代码的整洁和规范性至关重要,因为这直接影响...
但是一些较旧或者设计不完善的程序可能无法处理这个额外的字节序列,从而导致显示异常,如出现乱码、空格或者无法正确解析文件内容。 在C#中,我们可以通过以下步骤来读取并去除UTF-8文件的BOM头: 1. 使用`File....
- 编程时需考虑文件编码问题,确保读写过程不发生乱码。 - 键和值通常都是字符串,但也可以转换为其他类型,如整数、浮点数等。 - 考虑到ini文件的简单性,一般不进行复杂的语法检查,但要防止因格式错误导致的...
在MATLAB中,将文本文件(.txt)转换为MAT文件(.mat)是一个常见的操作,这主要适用于处理数据或存储变量。MAT文件是MATLAB的专用格式,用于存储矩阵和数组数据,以及变量和函数定义。下面我们将详细介绍如何进行这...
在Java Web开发中,文件下载是一个常见的功能,通常涉及到服务器端向客户端传输静态或动态生成的文件。本实例主要讲解如何通过Java Web技术实现在服务器端获取日志文件并提供给用户下载。首先,我们来看一下关键的...
需要注意的是,文件读取操作中可能会抛出`IOException`异常,因此需要在`catch`块中处理可能出现的异常,以确保程序的健壮性。 下载文件响应部分是实现文件下载的关键。在Spring MVC中,通常返回的是一个`Response...
在Linux环境中,将TXT文件导入MySQL数据库是一种常见的数据迁移任务,尤其在处理大量文本数据时。这个过程可以通过编程语言如Python实现,就像示例代码所示。以下是对整个过程的详细解释: 1. **连接MySQL数据库**...
在IT行业中,批量读取文本文件(如TXT文件)并将其数据导入到数据库是一项常见的任务,特别是在处理大量数据时。这个“批量读取txt文件导入数据库Demo实例”可能是一个示例程序,展示了如何高效地完成这项工作。下面...
静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和...
注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介 《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发...
在读取文件时,必须指定正确的编码,否则可能会出现乱码。Python的`open()`函数允许指定`encoding`参数来解决这个问题。 7. **批量处理**:在处理多个TXT文件时,可以编写一个循环,遍历文件夹中的所有TXT文件,并...
- 在处理文件名时,可能会遇到权限问题、文件不存在、磁盘空间不足等各种异常。FileNameUtil 应该包含恰当的异常处理机制,以保证程序的健壮性。 8. **多平台兼容性** - 文件系统在不同操作系统(如Windows、...
1. **显示问题**:在浏览器中,如果HTML文档以UTF-8带BOM格式存储,可能导致页面显示异常,如空格、乱码等。 2. **解析问题**:PHP读取带有BOM头的脚本时,可能无法正确解析,导致语法错误或执行异常。 3. **兼容性...
17. **上传下载文件检查**:测试文件上传和下载功能,确认上传的文件可正常打开,检查文件格式限制,并验证系统对上传失败或格式错误的提示。 18. **必填项检查**:确保未填写必填项时,系统能给出明确提示,通常会...
7. **测试**:在开发过程中,务必进行充分的测试,包括使用不同编码的ZIP文件,以及含有特殊字符(如空格、特殊符号)和长文件名的场景,确保在各种情况下都能正确处理中文文件名。 总之,处理Java中解压包含中文...
Python 实现文件批量编码转换是解决跨平台或处理不同编码格式文件时常见需求的一个方法。在上述示例中,作者面临的问题是文件源码使用了 Shift_JIS 编码,而 Ubuntu 18.04 系统默认采用 UTF-8 编码,导致文件中的...