通过servlet实现ftp下载功能
来源:互联网 发布:oracle查看实例端口 编辑:程序博客网 时间:2024/05/28 09:33
1.首先配置一个servlet,再次不再描述
2.后台代码如下:
public class DownServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UploadService uploadService;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String path = "/xxx/ceshi/"
String name = "www.zip";
File f2 = new File(name);
String filename2 = f2.getName();
ServletOutputStream outputStream = response.getOutputStream();
downFile(ip, port, uername, password, path, filename2,outputStream, response);
}
public void init() throws ServletException {
}
public static void downFile(String ip, int port, String username,
String password, String remotePath, String fileName,
ServletOutputStream outputStream, HttpServletResponse response) {
FTPClient ftp = new FTPClient();
int count = 0;
try {
int reply;
ftp.connect(ip, port);
ftp.setControlEncoding("UTF-8");
ftp.login(username, password);// 登录
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
System.out.println("连接服务器失败......");
outputStream.println("<html>");
outputStream.println("<script>");
outputStream.println("alert('连接服务器失败!')");
outputStream
.println("document.location.href='http://localhost:8080/xxx/ftp.jsp'");
outputStream.println("</script>");
outputStream.println("</html>");
outputStream.close();
ftp.disconnect();
return;
}
System.out.println("登陆成功......");
ftp.changeWorkingDirectory(remotePath);
FTPFile[] fs = ftp.listFiles();
for (int i = 0; i < fs.length; i++) {
FTPFile ff = fs[i];
if (ff.getName().trim().equals(fileName)) {
count++;
String filename = fileName;
response.setHeader("Content-disposition","attachment;filename="
+ URLEncoder.encode(filename,"ISO-8859-1"));
ftp.retrieveFile(new String(ff.getName().getBytes("ISO-8859-1"), "ISO-8859-1"), outputStream);
outputStream.flush();
}
}
if (count == 1) { // 下载成功
outputStream.close();
ftp.logout();
ftp.disconnect();
} else {// 文件找不到
outputStream.println("<html>");
outputStream.println("<script>");
outputStream.println("alert('文件不存在!')");
outputStream
.println("document.location.href='http://localhost:8080/xxx/ftp.jsp'");
outputStream.println("</script>");
outputStream.println("</html>");
outputStream.close();
ftp.logout();
ftp.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
try {
outputStream.println("<html>");
outputStream.println("<script>");
outputStream.println("alert('下载失败!')");
outputStream
.println("document.location.href='http://localhost:8080/xxx/ftp.jsp'");
outputStream.println("</script>");
outputStream.println("</html>");
outputStream.close();
ftp.logout();
ftp.disconnect();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
}
3.在前台调用该servlet即可
- 通过servlet实现ftp下载功能
- Servlet 实现下载功能
- Servlet实现下载功能
- Servlet 实现下载功能
- Servlet实现文件下载功能
- Servlet-实现文件下载功能
- servlet实现下载文件功能
- java实现通过FTP下载文件
- C# 实现 FTP 上传和下载功能
- java通过apache ftp实现ftp上传文件,下载文件
- servlet 实现通过流数据传输下载
- java中通过Servlet实现文件下载
- java—servlet实现文件下载功能
- 使用Servlet实现下载文件的功能
- java web Servlet--实现文件下载功能
- java web Servlet--实现文件下载功能
- 用Servlet中的HttpServlet实现下载功能
- 使用Servlet实现下载文件的功能
- Android_SDK_开发环境搭建
- Binary Tree Preorder Traversal
- Linux进程调试工具
- JEECG-数据字典的使用
- Vector3 基础知识
- 通过servlet实现ftp下载功能
- Android SDK Manager软件包下载安装相关问题的解决办法
- AQS锁机制原理
- form表单四种常见的提交方式
- 如何学习
- Wall time(real time), Process time和Monotonic time.
- 结合CRIU实现cloud foundry app进程的快速dump/restore
- ny106背包问题
- 平板电脑取代PC是大势所趋?