FTP服务器下载视频,自定义保存路径
controller层方法
/**
* 当前使用,浏览器自动弹框
* Description: 从FTP服务器下载文件
* @param host FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @return
* @return
*/
@RequestMapping(value = "downloadFile2")
public void downloadFile2( String remotePath,String fileName,HttpServletResponse response, HttpServletRequest request,ModelMap model,String id) {
boolean result = false;
FTPClient ftpClient = new FTPClient();
FileOutputStream fos = null;
int reply;
response.setContentType("application/x-download");
response.setCharacterEncoding("utf-8");
// 将文件的命名以及格式写进信息头设置中
SmartFile findById = smartFileServiceImpl.findById(id);
String videoName = findById.getVideoName();
String savePath = findById.getSavePath();
String savePath1 = savePath.substring(0,savePath.lastIndexOf("/"));
response.addHeader("Content-Disposition","attachment;filename=\"" + videoName+ "\"");//下载文件的名称
try {
String ip = cenConf.getProperty("ftp.ip");
String port1 = cenConf.getProperty("ftp.port");
int port = Integer.parseInt(port1);
String username = cenConf.getProperty("ftp.username");
String password = cenConf.getProperty("ftp.password");
ftpClient.connect(ip, port);
// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
ftpClient.login(username, password);// 登录
reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
return;
}
ftpClient.changeWorkingDirectory(savePath1);// 转移到FTP服务器目录
FTPFile[] fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(videoName)) {
File fileurl = new File(savePath1);
ftpClient.setBufferSize(1024);//设置缓冲区
OutputStream outputStream = response.getOutputStream();
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.retrieveFile(ff.getName(), outputStream);
outputStream.close();
}
}
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("FTP客户端出错!", e);
} finally {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("关闭FTP连接发生异常!", e);
}
}
}
jsp页面
<i class="fa fa-edit" type="button" onclick="downloadFile('${list.id}')">下载 </i>
js
//下载按钮
function downloadFile(id){
window.location.href="downloadFile2.action?id="+id;
}