打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹

打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹,第1张

这个问题就出在防火墙外网的设置上,解决方法如下图所示:

打开防火墙;

2切换到“高级”选项卡;

3双击“外网”,或者选中“外网”后再点击右侧的“配置”按钮;

4在d出的页面中勾选“FTP服务器”,点击下面的“确定”按钮即可。

扩展资料:

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

一般来说用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。

Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的 *** 作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种 *** 作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。

基于不同的 *** 作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

ftp协议有两种工作方式:port方式和pasv方式,中文意思为主动式和被动式。
port(主动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。
pasv(被动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。

参考资料:

百度百科-FTP服务器

ftp协议有两种工作方式:port方式和pasv方式,中文意思为主动式和被动式。
port(主动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。
pasv(被动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。
使用IE不能访问ftp的原因
打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。
详细信息:
无法与服务器建立连接
最后修改这里的设置,把勾去掉就解决了。
方法:
1 打开IE的菜单"工具"->"Internet 选项";
2 点击“高级”标签卡;
3 将“浏览”节点下的“使用被动FTP(为防火墙和DSL调制解调器兼容性)”前面的勾去掉。
因为port方式在传送数据时,由服务器主动连接客户端,所以,如果客户端在防火墙或nat网关后面,用port方式将无法与internet上的ftp服务器传 送文件。这种情况需要使用pasv方式。几乎所有的ftp客户端软件都支持这两种方式。特殊的典型例子是ie,ie默认是用port方式的。如果要在ie 里启用pasv方式,请打开ie,在菜单里选择:工具 -> internet选项 -> 高级,在“使用被动ftp”前面打上钩(需要ie60以上才支持)

上传时提示:将文件复制到ftp服务器出错,请检查是否有权限将文件放到该服务器上。此问题的原因:设置错误造成的。

解决的方法和 *** 作步骤如下:

1、首先,直接在开始栏的搜索框中输入“
 Internet”,然后选择[Internet信息服务(IIS)管理器]选项,然后单击以进入服务器管理器,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,在左侧连接框中的[网站]选项中选择创建的FTP服务器,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,单击右侧的[高级设置]选项,进入“FTP高级设置”对话框,如下图所示,然后进入下一步。

4、然后,完成上述步骤后,在“高级设置”对话框中找到[允许 UTF-8]选项,单击下拉列,然后选择[False]选项,如下图所示,然后进入下一步。

5、最后,完成上述步骤后,必须重新启动FTP服务器才能生效。单击右侧菜单栏中的[重新启动]选项,如下图所示。这样,重新启动之后,问题就解决了。

FTP数据读写失败一般有几种情况:

文件损失,不完整,导致传输过程验证失败。

文件使用中,比如在杀毒或者编辑中的文件,系统占用是不能传输的。

权限不足,比如针对某些用户,是不能传输部分文件的,比如exe等风险文件。

特殊情况,比如文件传输过程中,目录满了,存储失败,这个是由服务器管理员控制的,如果目录体积不够文件传输的,联系管理员协商解决。

java测试连接ftp是否连通可以使用判断是否有异常来决定,实例如下:


      connectServer 
      连接ftp服务器 
      @throws javaioIOException 
      @param path 文件夹,空代表根目录 
      @param password 密码 
      @param user    登陆用户 
      @param server 服务器地址 
     / 
  public void connectServer(String server, String user, String password,  String path) 
  throws IOException 
   { 
     // server:FTP服务器的IP地址;user:登录FTP服务器的用户名 
     // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径 
      ftpClient = new FtpClient(); 
      ftpClientopenServer(server); 
      ftpClientlogin(user, password); 
     //path是ftp服务下主目录的子目录 
     if (pathlength() != 0)   ftpClientcd(path); 
     //用2进制上传、下载 
      ftpClientbinary();      


      upload 
      上传文件 
      @throws javalangException 
      @return -1 文件不存在 
                -2 文件内容为空 
                >0 成功上传,返回文件的大小 
      @param newname 上传后的新文件名 
      @param filename 上传的文件 
     / 
public long upload(String filename,String newname) throws Exception 

     long result = 0; 
      TelnetOutputStream os = null; 
      FileInputStream is = null; 
     try {          
          javaioFile file_in = new javaioFile(filename); 
         if (!file_inexists()) return -1; 
         if (file_inlength()==0) return -2; 
          os = ftpClientput(newname); 
          result = file_inlength(); 
          is = new FileInputStream(file_in); 
         byte[] bytes = new byte[1024]; 
         int c; 
         while ((c = isread(bytes)) != -1) { 
               oswrite(bytes, 0, c); 
          } 
      } finally { 
         if (is != null) { 
              isclose(); 
          } 
         if (os != null) { 
             osclose(); 
          } 
      } 
    return result; 


      upload 
      @throws javalangException 
      @return 
      @param filename 
     / 
public long upload(String filename) 
throws Exception 

    String newname = ""; 
    if (filenameindexOf("/")>-1) 
     { 
        newname = filenamesubstring(filenamelastIndexOf("/")+1); 
     }else 
     { 
        newname = filename; 
     } 
    return upload(filename,newname); 


        download 
        从ftp下载文件到本地 
      @throws javalangException 
      @return 
      @param newfilename 本地生成的文件名 
      @param filename 服务器上的文件名 
     / 
public long download(String filename,String newfilename) 
throws Exception 
{   
    long result = 0; 
     TelnetInputStream is = null; 
     FileOutputStream os = null; 
    try 
     { 
        is = ftpClientget(filename);        
        javaioFile outfile = new javaioFile(newfilename); 
        os = new FileOutputStream(outfile); 
       byte[] bytes = new byte[1024]; 
       int c; 
       while ((c = isread(bytes)) != -1) { 
            oswrite(bytes, 0, c); 
            result = result + c; 
        } 
     } catch (IOException e) 
     { 
        eprintStackTrace(); 
     } 
    finally { 
         if (is != null) { 
              isclose(); 
          } 
         if (os != null) { 
             osclose(); 
          } 
      } 
     return result; 


    取得某个目录下的所有文件列表 
    
   / 
public List getFileList(String path) 

     List list = new ArrayList(); 
    try 
     { 
        DataInputStream dis = new   DataInputStream(ftpClientnameList(path)); 
       String filename = ""; 
       while((filename=disreadLine())!=null)   
        {   
          listadd(filename);         
        }   
    
     } catch (Exception e) 
     { 
        eprintStackTrace(); 
     } 
    return list; 


      closeServer 
      断开与ftp服务器的链接 
      @throws javaioIOException 
     / 
public void closeServer() 
throws IOException 
{    
   try 
    { 
      if (ftpClient != null) 
       { 
         ftpClientcloseServer();      
       } 
    } catch (IOException e) { 
       eprintStackTrace(); 
    } 

   
  public static void main(String [] args) throws Exception 
   { 
     FtpUtil ftp = new FtpUtil(); 
    try { 
         //连接ftp服务器 
          ftpconnectServer("10163715", "cxl", "1", "info2"); 
         /   上传文件到 info2 文件夹下 / 
          Systemoutprintln("filesize:"+ftpupload("f:/download/Installexe")+"字节"); 
         / 取得info2文件夹下的所有文件列表,并下载到 E盘下 / 
          List list = ftpgetFileList(""); 
         for (int i=0;i<listsize();i++) 
          { 
            String filename = (String)listget(i); 
             Systemoutprintln(filename); 
             ftpdownload(filename,"E:/"+filename); 
          } 
     } catch (Exception e) { 
       /// 
     }finally 
     { 
        ftpcloseServer(); 
     } 
   }   
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10810199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存