网页中如何实现ftp 上传功能?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-15
利用win7系统IIS实现ftp文件上传(是在网页上实现)

用windows系统里的FTP,会很麻烦。因为会涉及到权限的问题。最容易遇到的情况,一个文件夹可以访问,其子文件夹却不能访问了。

想用FTP,还是不要用windows自带的,麻烦。
可以使用serv-U,低版本需要客户端,高版本可以用网页形式上传下载!

import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class test {

private FTPClient ftp;
/**
*
* @param path 上传到ftp服务器哪个路径下
* @param addr 地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @return
* @throws Exception
*/
private boolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
ftp.connect(addr,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(path);
result = true;
return result;
}
/**
*
* @param file 上传的文件或文件夹
* @throws Exception
*/
private void upload(File file) throws Exception{
if(file.isDirectory()){
ftp.makeDirectory(file.getName());
ftp.changeWorkingDirectory(file.getName());
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
File file1 = new File(file.getPath()+"\\"+files[i] );
if(file1.isDirectory()){
upload(file1);
ftp.changeToParentDirectory();
}else{
File file2 = new File(file.getPath()+"\\"+files[i]);

两种方式:前提是你有用户名和密码。
1.如果服务器上设置了FTP,譬如在IIS做了设置,只需访问绑定的域名就可以;
2.如果使用第三方软件做的FTP譬如Serv-U,那么你需要获取IP地址,譬如是192.168.1.1,那么你就在地址栏输入 ftp://192.168.1.1,弹出对话框,输入用户名和密码即可!

如果服务器设置匿名访问,那么则不需要用户名和密码!