duanben1324 2011-05-16 06: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-16 06: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条)

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?