首先声明一下。jsp从ftp服务器上面下载文件,有两种方法
1.直接给出文件的地址
2.将文件作为字节流返回给浏览器
一 、先说第一种吧(这种发放很简单)。
1.
直接使用一个超链接: 点击FTP下载
2.
先写一个iframe
然后
document.getElementById('downloadAudio').src = 'ftp://FTP用户名:密码@IP地址:端口号+ 后面是路径 (如:/2013/0124/20130124.wav)'
3.
也可以直接使用window的函数:
function fileDown(){
var url = 'ftp://' + audioFtpUser + ':' + audioFtpPwd + '@' + audioServerIP + ':' + audioFtpPort + audioPath;
window.location.href = url;
};
二、第二种就是用java写的,然后字节流去下载
jsp页面:
function fileDown(){
var file = Ext.getCmp('audioFileID').getValue();
document.getElementById('downloadAudio').src = securedroot+'Audio.htm?'
+ 'method=audioFileDown'
+ '&_audioServerIP='+ audioServerIP
+ '&_audioFtpPort=' + audioFtpPort
+ '&_audioFtpUser=' + audioFtpUser
+ '&_audioFtpPwd=' + audioFtpPwd
+ '&_remotePath=' + file.substring(0 , file.lastIndexOf('/') + 1)
+ '&_fileName=' + file.substring(file.lastIndexOf('/') + 1 , file.length);
};
java端:
public void audioFileDown(HttpServletRequest request, HttpServletResponse response){
String audioServerIP = request.getParameter("_audioServerIP");
int audioFtpPort = Integer.parseInt(request.getParameter("_audioFtpPort"));
String audioFtpUser = request.getParameter("_audioFtpUser");
String audioFtpPwd = request.getParameter("_audioFtpPwd");
String remotePath = request.getParameter("_remotePath");
String fileName = request.getParameter("_fileName");
LOGGER.info("连接FTP服务器,IP:" + audioServerIP + ";端口:" + audioFtpPort +";用户名:" + audioFtpUser +
";密码:" + audioFtpPwd + ";FTP路径:" + remotePath + ";文件名字:" + fileName + "。" );
//---------------------------导出音频文件-------------------------------
response.reset();
response.setContentType("application/audio/x-wav;charset=UTF-8"); //这是下载wav格式的音频用的。如果需要下载其它的文件,可以去参考一下 常见的MIME类型表
response.setHead