社区
Web 开发
帖子详情
请教!如何用jsp开发B/S结构的Ftp?
sparthiul
2007-05-15 09:06:10
具有一般ftp上的全部功能,并提供文件的搜索功能,请问如何实现?
...全文
290
3
打赏
收藏
请教!如何用jsp开发B/S结构的Ftp?
具有一般ftp上的全部功能,并提供文件的搜索功能,请问如何实现?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
backhamx7
2007-05-15
打赏
举报
回复
part2
=====================================
/**
* 取得指定目录下的所有文件名,不包括目录名称 分析nameList得到的输入流中的数,得到指定目录下的所有文件名
*
* @param fullPath
* String
* @return ArrayList
* @throws Exception
*/
public ArrayList fileNames(String fullPath) throws Exception {
ftpclient.ascii(); // 注意,使用字符模式
TelnetInputStream list = ftpclient.nameList(fullPath);
byte[] names = new byte[2048];
int bufsize = 0;
bufsize = list.read(names, 0, names.length); // 从流中读取
list.close();
ArrayList namesList = new ArrayList();
int i = 0;
int j = 0;
while (i < bufsize /* names.length */) {
// char bc = (char) names;
// System.out.println(i + " " + bc + " : " + (int) names);
// i = i + 1;
if (names[i] == 10) { // 字符模式为10,二进制模式为13
// 文件名在数据中开始下标为j,i-j为文件名的长度,文件名在数据中的结束下标为i-1
// System.out.write(names, j, i - j);
// System.out.println(j + " " + i + " " + (i - j));
String tempName = new String(names, j, i - j);
namesList.add(tempName);
// System.out.println(temp);
// 处理代码处
// j = i + 2; //上一次位置二进制模式
j = i + 1; // 上一次位置字符模式
}
i = i + 1;
}
backhamx7
2007-05-15
打赏
举报
回复
part1
=========================================
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
/**
* FTP远程命令列表<br/>
* USER PORT RETR ALLO DELE SITE XMKD CDUP FEAT<br/>
* PASS PASV STOR REST CWD STAT RMD XCUP OPTS<br/>
* ACCT TYPE APPE RNFR XCWD HELP XRMD STOU AUTH<br/>
* REIN STRU SMNT RNTO LIST NOOP PWD SIZE PBSZ<br/>
* QUIT MODE SYST ABOR NLST MKD XPWD MDTM PROT<br/>
* 在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上\r\n<br/>
* ftpclient.sendServer("XMKD /test/bb\r\n"); //执行服务器上的FTP命令<br/>
* ftpclient.readServerResponse一定要在sendServer后调用<br/>
* nameList("/test")获取指目录下的文件列表<br/>
* XMKD建立目录,当目录存在的情况下再次创建目录时报错<br/>
* XRMD删除目录<br/>
* DELE删除文件<br/>
* <p>
* Title: 使用JAVA操作FTP服务器(FTP客户端)
* </p>
* <p>
* Description: 上传文件的类型及文件大小都放到调用此类的方法中去检测,比如放到前台JAVASCRIPT中去检测等
* 针对FTP中的所有调用使用到文件名的地方请使用完整的路径名(绝对路径开始)。
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
*/
public class FtpUpfile {
private FtpClient ftpclient;
private String ipAddress;
private int ipPort;
private String userName;
private String PassWord;
/**
* 构造函数
*
* @param ip
* String 机器IP
* @param port
* String 机器FTP端口号
* @param username
* String FTP用户名
* @param password
* String FTP密码
* @throws Exception
*/
public FtpUpfile(String ip, int port, String username, String password) throws Exception {
ipAddress = new String(ip);
ipPort = port;
ftpclient = new FtpClient(ipAddress, ipPort);
// ftpclient = new FtpClient(ipAddress);
userName = new String(username);
PassWord = new String(password);
}
/**
* 构造函数
*
* @param ip
* String 机器IP,默认端口为21
* @param username
* String FTP用户名
* @param password
* String FTP密码
* @throws Exception
*/
public FtpUpfile(String ip, String username, String password) throws Exception {
ipAddress = new String(ip);
ipPort = 21;
ftpclient = new FtpClient(ipAddress, ipPort);
// ftpclient = new FtpClient(ipAddress);
userName = new String(username);
PassWord = new String(password);
}
/**
* 登录FTP服务器
*
* @throws Exception
*/
public void login() throws Exception {
ftpclient.login(userName, PassWord);
}
/**
* 退出FTP服务器
*
* @throws Exception
*/
public void logout() throws Exception {
// 用ftpclient.closeServer()断开FTP出错时用下更语句退出
ftpclient.sendServer("QUIT\r\n");
int reply = ftpclient.readServerResponse(); // 取得服务器的返回信息
}
/**
* 在FTP服务器上建立指定的目录,当目录已经存在的情下不会影响目录下的文件,这样用以判断FTP
* 上传文件时保证目录的存在.目录格式必须以"/"根目录开头
*
* @param pathList
* String
* @throws Exception
*/
public void buildList(String pathList) throws Exception {
ftpclient.ascii();
StringTokenizer s = new StringTokenizer(pathList, "/"); // sign
int count = s.countTokens();
String pathName = "";
while (s.hasMoreElements()) {
pathName = pathName + "/" + (String) s.nextElement();
try {
ftpclient.sendServer("XMKD " + pathName + "\r\n");
} catch (Exception e) {
e = null;
}
int reply = ftpclient.readServerResponse();
}
ftpclient.binary();
}
javaboy2006
2007-05-15
打赏
举报
回复
http://www.okasp.com/techinfo/article_23563.html
HarmonyOS ArkTS API 24打造一座口袋花园:在模板渲染时只需一个简单的 if (item.tag !== ‘‘) 判断即可,避免了可选类型带来的繁琐空值检查
在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用
开发
语言,正在从传统的命令式 UI
开发
范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求
开发
者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为
基于HarmonyOS API 24实战解析气象监测应用在 WeatherApp 的 build 方法中,整体采用了 Stack 作为根容器,允许其子组件按照声明的顺序层层叠加
在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用
开发
语言,正在从传统的命令式 UI
开发
范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求
开发
者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为
【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库02
每个分支下又细分了四个关键方向,并按照“研究对象/焦点、基本问题、核心理论/概念、研究方法、应用/目标、前沿/发展”的框架进行阐述,严格遵循了六级编码体系。在最终整合时,应建立唯一的学科分类编码表(例如,用两位数字或“ART”、“MED”、“ECO”等字母前缀),并确保所有下级编码(尺度、层次、类别、子类、具体项)的逻辑一致性。此回答中的编码为示例,实际系统需据此调整。控制过程(前馈、同期、反馈)、全面质量管理(TQM)、平衡计分卡(BSC)定量(调查、实验)、定性(访谈、民族志)、混合方法、大数据。
dbx-agents-offline-windows-x64.zip
dbx-agents-offline-windows-x64.zip
建筑声学基于隔音材料技术体系与市场格局分析:2026年中国十大代表企业研究及工程应用决策支持系统构建
内容概要:本白皮书系统梳理了中国建筑声学行业的发展现状,重点围绕隔音材料的技术体系、市场格局与十大代表企业展开研究。文章厘清了隔音、吸音与防撞三大功能的概念边界,阐述了声音传播的物理机制及声学工程的材料、构造、施工与验证四层级
结构
;详细介绍了阻尼隔音板、隔音毡、吸音棉、减震构件、防撞软包等核心产品及其性能指标,并分析了行业标准、合规要求与工程实践中的常见误区;最后通过对广州朗音阁等十家大湾区代表性企业的并列介绍,揭示了行业“综合一体型”“材料制造型”“品牌产品型”等多元发展模式,强调系统交付能力、合规性与环保安全正成为企业核心竞争力。; 适合人群:建筑声学与隔音材料领域的工程采购方、建筑设计单位、总承包单位、行业研究者及政策监管相关人员。; 使用场景及目标:①帮助采购方科学选型,规避“以材料参数替代系统性能”等常见误区;②指导设计单位在公检法办案区、文化娱乐、医疗教育等细分场景中制定合理的声学解决方案;③为行业研究者提供市场格局、技术趋势与企业模式的客观参考;④推动企业提升合规意识与系统交付能力。; 阅读建议:读者应结合自身角色选择重点章节阅读——采购方可聚焦第一章、第三章、第五章、第八章及第九章;设计单位宜通读第一至七章;研究者建议全面研读并关注第二章市场格局与第四章技术趋势;所有读者均需注意本报告不进行企业排名,企业介绍篇幅差异不代表实力优劣,具体决策应以实地考察与合同约定为准。
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章