0

PHP ファイル グラバー スクリプトを使用しています。フィールドにリモート ファイルの URL を入力すると、ファイルがサーバーに直接アップロードされます。コードは次のようになります。

<?php
ini_set("memory_limit","2000M");
ini_set('max_execution_time',"2500");

foreach ($_POST['store'] as $value){
    if ($value!=""){
        echo("Attempting: ".$value."<br />");
        system("cd files && wget ".$value);
        echo("<b>Success: ".$value."</b><br />");
    }
}

echo("Finished all file uploading.");
?>

ファイルをアップロードした後、ファイルへの直接のURLを表示したい:たとえば

すべてのファイルのアップロードが完了し、直接 URL: http://site.com/files/grabbedfile.zip

このコード内で最後にアップロードされたファイルのファイル名を特定する方法を教えてください。

前もって感謝します

4

2 に答える 2

0

wget ログ ファイルを使用できます。追加するだけ-o logfilenameです。
ここに小さなものがありますfunction get_filename( $wget_logfile )

ini_set("memory_limit","2000M");
ini_set('max_execution_time',"2500");

function get_filename( $wget_logfile )
{
    $log = explode("\n", file_get_contents( $wget_logfile ));
    foreach ( $log as $line )
    {
        preg_match ("/^.*Saving to: .{1}(.*).{1}/", $line, $find);
        if ( count($find) )
            return $find[1];
    }
    return "";
}

$tmplog = tempnam("/tmp", "wgetlog");
$filename = "";

foreach ($_POST['store'] as $value){
    if ($value!=""){
        echo("Attempting: ".$value."<br />");
        system("cd files && wget -o $tmplog ".$value); // -o logfile

        $filename = get_filename( $tmplog ); // current filename
        unlink ( $tmplog ); // remove logfile          

        echo("<b>Success: ".$value."</b><br />");
    }
}

echo("Finished all file uploading.");
echo "Last file: ".$filename;
于 2013-05-19T10:35:25.167 に答える