是否通过FTP服务器上的PHP检查文件大小,以查找没有扩展名的文件?

是否通过FTP服务器上的PHP检查文件大小,以查找没有扩展名的文件?,php,javascript,ajax,ftp,Php,Javascript,Ajax,Ftp,我正在尝试使用PHP为正在使用FTP的文件创建一个进度条。首先,我需要找到要下载的项目的文件大小。问题是该文件没有扩展名——它只是“映射”。当使用PHP的filesize()时,我会遇到一些错误。我的假设是,它需要一个指定的扩展(使用扩展进行测试,效果很好)。最后我想做的是: 确定远程文件的文件大小 启动FTP下载 向本地文件发送AJAX调用以确定其文件大小 使用JS增加显示的进度条 我的假设是,如果我可以确定文件的初始大小而不必定义扩展名,那么这应该是可行的 这是可能的,还是有其他更简单的方法

我正在尝试使用PHP为正在使用FTP的文件创建一个进度条。首先,我需要找到要下载的项目的文件大小。问题是该文件没有扩展名——它只是“映射”。当使用PHP的
filesize()
时,我会遇到一些错误。我的假设是,它需要一个指定的扩展(使用扩展进行测试,效果很好)。最后我想做的是:

  • 确定远程文件的文件大小
  • 启动FTP下载
  • 向本地文件发送AJAX调用以确定其文件大小
  • 使用JS增加显示的进度条
  • 我的假设是,如果我可以确定文件的初始大小而不必定义扩展名,那么这应该是可行的


    这是可能的,还是有其他更简单的方法?

    如果我正确理解您的意图(从FTP服务器下载远程文件),我认为您不能使用
    filesize
    功能,因为它只处理本地文件。要获取FTP服务器上远程文件的文件大小,您需要使用以下内容:

    $file = '/remote/path/map';
    $conn_id = ftp_connect($ftp_server);
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $res = ftp_size($conn_id, $file);
    
    if ($res != -1) {
        echo "size of $file is $res bytes";
    } else {
        echo "couldn't get the size";
    }
    ftp_close($conn_id);
    

    看一看。

    如果我正确理解您正在尝试做的事情(从FTP服务器下载远程文件),我认为您不能使用
    文件大小
    功能,因为它只处理本地文件。要获取FTP服务器上远程文件的文件大小,您需要使用以下内容:

    $file = '/remote/path/map';
    $conn_id = ftp_connect($ftp_server);
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $res = ftp_size($conn_id, $file);
    
    if ($res != -1) {
        echo "size of $file is $res bytes";
    } else {
        echo "couldn't get the size";
    }
    ftp_close($conn_id);
    

    请看。

    警告:filesize()[function.filesize]:第9行/remote/file/target/path/map in/local/file/target/path/example.php中的stat失败
    在定义了扩展名的文件上测试它不会产生错误,并且工作正常。
    警告:filesize()[function.filesize]:stat在第9行/local/file/target/path/example.php中的/remote/file/target/path/map失败
    在一个定义了扩展名的文件上测试它不会产生错误,并且工作正常。完美-我不知道这个函数,应该正是我需要的。谢谢。@pennstate_fanboy请注意,某些FTP服务器不支持文件大小请求。在这种情况下,你会得到-1,对此你无能为力。只是在内部apache服务器上进行了测试,它完全符合我的需要,再次感谢。完美-我不知道该功能,应该正是我所需要的。谢谢。@pennstate_fanboy请注意,某些FTP服务器不支持文件大小请求。在这种情况下,你会得到-1,对此你无能为力。只是在内部apache服务器上进行了测试,它完全符合我的需要,再次感谢。