duanben1324 2011-05-15 22:48
浏览 37
已采纳

PHP / Perl文件大小功能无法在新服务器上运行

I have a problem with a function that doesn't work as expected since I have moved my site from a shared hosting to a VPS (both have the same Linux OS, php version 5.2.9 and Perl version 5.8.8).

When my script store a remote file into a local directory, I run a simple php script at regular intervals (5 seconds) using XMLHttpRequest, this php script execute a Perl script that return the current file size (bytes already downloaded).

Here is the php code:

<?php
if (isset($_GET['file'])) {
    clearstatcache();
    $file = $_GET['file'];
    exec("/usr/bin/perl /home/xxxxxx/public_html/cgi-bin/filesize.pl $file", $output);
    //print_r($output);
    if (!empty($output) || $output[0] != "") {
        $currentSize = $output[0];
        file_put_contents('progress.txt', $currentSize);
    } else {
        ...
        ...
    }
}
?>

Here is the Perl code

#!/usr/bin/perl
$filename = $ARGV[0];
$filepath = '/home/xxxxxx/public_html/tmp_dir/'.$filename.'.flv';
$filesize = -s $filepath;
print $filesize;

When I was running these scripts on the shared server, I had no problem and could see the download progress, but now, the file size is only printed when the remote file has been fully downloaded and I can't see the progress.

I think I need to change something in the php settings but I'm not sure and I don't know what needs to be changed.

OK, I'm sorry/stupid, the filesize() function works fine, thank you all guys.

展开全部

  • 写回答

2条回答 默认 最新

  • doucang5542 2011-05-15 22:50
    关注

    If you need the file size, you could also just call the filesize function from PHP, and avoid having to use perl altogether.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部