-1

アップロードされたファイルのサイズを切り上げ、kb、mb、gb のいずれのサイズ形式かを判断する必要があります。

詳細: ユーザーが画像をアップロードしている間、画像の属性はグローバル $_FILES を介して取得されます。たとえば、ユーザーが 29.6kb の画像をアップロードし、アップロードされた画像のサイズを確認することにした場合、$_FILES[size] 配列はサイズを 30358 としてエコーします。

$_FILES[size] から取得した値を使用して、画像サイズを 30758 から 31 に切り上げ、ファイル サイズ形式 (kb、mb、または gb) を連結し、次のようにエコーします。 31キロバイト。

私は本当にこれで助けを得たいと思っています.ありがとう!

4

3 に答える 3

0

Laravelは次のヘルパー関数を使用します。

function get_file_size($size)
{
  $units = array('Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
  return @round($size / pow(1024, ($i = floor(log($size, 1024)))), 2).' '.$units[$i];
}

*ソース: https://github.com/laravel/laravel/blob/master/laravel/helpers.php

これを行うためのよりエレガントな方法はまだ見たことがありません。

于 2013-02-06T11:59:26.190 に答える
0

それについてはどうですか?

$file =  $_FILES[size];
$s = 'kb';
$x = round($file/1000, 1);
if($x > 1000){ 
    $x = $x/1000;
    $s = 'mb';
} else if($x > 100000) {
    $x = $x/100000;
    $s = 'gb';
}
echo $x . ' ' . $s;
于 2013-02-06T11:35:19.683 に答える
0

これは、php コマンド round(float) といくつかの簡単な計算を使用して実現できます。

define("K",1024);
define("M",1048576);
define("G",1073741824);

$size = $_FILES[size];
$gigs = $size / G;
$megs = ($size - ($gigs * G)) / M;
$kils = ($size - ($gigs * G) - ($megs * M)) / K;

if($gigs > 0) echo(round($gigs));
elseif($megs > 0) echo(round($megs));
elseif($kils > 0) echo(round($kils));
else echo("Size is zero");
于 2013-02-06T11:39:00.300 に答える