我使用fzaninotto/faker在我的项目文件中创建了一个工厂,如下所示:
'icon' => $faker->file($sourceDir='/home/gujarat/fakerFile/images', $targetDir='./public/iconLibrary', false),
'title' => $faker->name,
'date' => $faker->numberBetween($min = 1900, $max = 2016),
'size' => $faker->randomFloat($nbMaxDecimals = 10.0, $min = 2.0, $max = 10.0),
'file_type' => 'video/mp4',
'download_url' => $faker->file($sourceDir='/home/gujarat/fakerFile/video', $targetDir='./public/videoLibrary', false),
'category_id' => $randomCategory->id,
我需要从$faker->file()中获得所选文件的大小,正如您可以在我的字段download_url
中看到的MB或KB,文件扩展名是.mp4是否可以这样做?
你可以使用Illuminate'Http'UploadedFile来扩展symfony的UploadedFile类
$path = $faker->file($sourceDir='/home/gujarat/fakerFile/video', $targetDir='./public/videoLibrary', false);
$uploadedFile = new Illuminate'Http'UploadedFile($path, 'randomName');
$uploadedFile->getClientSize();
首先找到文件的路径,并从这里使用filesize()
来确定文件的大小。我设法在我的工厂类中这样做:
$factory->defineAs(App'Library::class, 'library_video', function (Faker'Generator $faker) {
$categories = Category::all();
$randomCategory = $categories->random();
$randomFile = $faker->file($sourceDir='/home/gujarat/fakerFile/video', $targetDir='./public/videoLibrary', false);
$size = filesize("./public/videoLibrary/".$randomFile);
return [
'icon' => $faker->file($sourceDir='/home/gujarat/fakerFile/images', $targetDir='./public/iconLibrary', false),
'title' => $faker->name,
'date' => $faker->numberBetween($min = 1900, $max = 2016),
'download_url' => $randomFile,
'size' => $size,
'file_type' => 'video/mp4',
'category_id' => $randomCategory->id,
];
});
可以使用php函数getimagesize
list($width, $height) = getimagesize("dir/image.jpg");