7

私はグーグルしてきましたが、私が得るのはgetimagesizeとfilesizeだけです。
getimagesize dosentは、KBサイズを幅と高さだけで取得しますが、これは私が探しているものではありません。
filesizeは私にメッセージを与えます警告:filesize()[function.filesize]:
問題のファイルの統計は失敗しました51kb.jpgファイル

$imgsize=filesize("http://localhost/projects/site/schwe/user/1/1.jpg");

動作しません、

どうすればこれを達成できますか?

4

6 に答える 6

7

リモート要素のファイルサイズを取得することはできません。システム上の相対パスを指定するか、file_get_contents()最初にコンテンツを取得するためにを実行してください。したがって、http://の代わりに、を実行しfilesize('/path/to/local/system')ます。PHPプロセスで読み取り可能であることを確認してください

于 2010-09-27T15:23:42.883 に答える
5

そのようなリモートファイルのファイルサイズを調べることはできません。これは、ローカルファイルのファイルサイズを確認するためのものです。

例えば...

$imgsize = filesize( '/home/projects/site/1.jpg' );
于 2010-09-27T15:23:59.527 に答える
1

filesize()使用する関数です。失敗している可能性があります

  1. Webアドレスを取得しようとしています。URLラッパーがオンになっていない可能性があります
  2. そのURLは無効です。

ローカルファイルで実行しようとしている場合はfilesize()、Web URLではなく、ファイルシステムパスを参照してください。

于 2010-09-27T15:25:26.647 に答える
1

または、次のようなこともできます:

$header = get_headers($url);
foreach ($header as $head) {
    if (preg_match('/Content-Length: /', $head)) {
        $size = substr($head, 15);                      
    }
}
于 2013-09-24T23:05:57.690 に答える
0

filesizeURLではなく引数としてファイルの名前を取り、ファイルのサイズをバイト単位で返します。戻り値をで除算して1024、サイズをKB単位で取得できます。

于 2010-09-27T15:25:25.253 に答える
0

私も同じ問題を抱えていましたが、このように解決しました。それがどれほど最適かはわかりませんが、私にとってはうまくいきます。

getimagesize("http://localhost/projects/site/schwe/user/1/1.jpg");

$file_size = $file[0]*$file[1]*$file["bits"];
于 2012-10-03T13:45:01.523 に答える