2012-05-29 91 views
0

我正在尝试为使用PHP的FTP文件创建进度条。要开始这个,我需要找到要下载的项目的文件大小。问题是该文件没有扩展名 - 它只是“地图”。当使用PHP的filesize()时,我得到一些错误。我的假设是,它需要一个指定的扩展(用扩展测试,它工作正常)。我想在做到底:通过FTP在FTP服务器上检查文件大小是否存在没有扩展名的文件?

  1. 确定远程文件
  2. 启动FTP下载
  3. 发送AJAX调用本地文件,以确定其文件大小的文件大小
  4. 增加显示进度条与JS

我的假设是,这应该工作 - 也就是说,如果我可以确定没有定义的扩展名的文件的初始大小。

这是可能的,还是有另一种方法可能更容易?

+0

你会得到什么错误? – 2012-05-29 14:21:47

+0

'Warning:filesize()[function.filesize]:stat在第9行的/local/file/target/path/example.php中的/ remote/file/target/path/map失败' –

+0

在文件上测试它定义的扩展名不会产生错误,并且工作正常。 –

回答

4

如果我正确理解你要做什么(从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_size function

+0

完美 - 我不知道这个功能,应该正是我需要的。谢谢。 –

+0

@pennstate_fanboy请注意,某些FTP服务器不支持文件大小请求。在这种情况下你会得到-1,对此你没有太多的办法。 –

+0

刚刚在内部的apache服务器上测试过,它完全符合我的需求,再次感谢。 –

相关问题