用Java编写 FTP下载word文件的代码,要求输出给浏览器,文件名称不能乱码,文件内容不能乱码
时间: 2024-02-22 19:00:12 浏览: 84
Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题
以下是Java编写FTP下载Word文件并输出给浏览器的代码,其中包括设置FTP传输格式、指定文件名和内容编码格式、下载文件、读取文件内容、输出到浏览器等步骤:
```
public void downloadWordFileFromFTP(String server, int port, String user, String password, String remoteFilePath, HttpServletResponse response) throws Exception {
FTPClient ftp = new FTPClient();
ftp.connect(server, port);
ftp.login(user, password);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.setControlEncoding("UTF-8");
InputStream in = ftp.retrieveFileStream(remoteFilePath);
String fileName = URLDecoder.decode(remoteFilePath.substring(remoteFilePath.lastIndexOf("/") + 1), "UTF-8");
response.setContentType("application/msword");
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
OutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
in.close();
out.close();
ftp.logout();
ftp.disconnect();
}
```
其中,remoteFilePath为FTP服务器上的文件路径,response为HttpServletResponse对象,用于输出文件到浏览器。在下载文件时,需要将文件名解码为UTF-8格式,同时将文件内容以二进制流形式输出到浏览器,以保证文件名和内容不会出现乱码。
阅读全文