我能够模拟任何大小的文本文件和任何分辨率的图像。
但是对于我的测试,我需要同时具有任何分辨率和任何文件大小(例如:800x600px和100 MB)的图像以及其他文件格式(例如PDF)。
当我使用LargFileContent
时,模仿类型变为text/plain
。
use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\content\LargeFileContent;
use Illuminate\Http\UploadedFile
function createImageUploadFile()
{
$root = vfsStream::setup(
sys_get_temp_dir()
);
$virtualFile = vfsStream::newFile('testFile.jpg')
->withContent(LargeFileContent::withMegabytes(100))
->at($root);
// This sets the right mimetype but overwrites the file size
// imagejpeg(
// imagecreate(800, 600),
// $virtualFile->url()
// );
return new UploadedFile(
$virtualFile->url(),
null,
//mime_content_type($file->url()),
'image/jpeg', // no impact, remains a text/plain
null,
null,
true
);
}
如何生成任何大小的任何类型的文件(mimetype)以及任何大小和文件大小的图像(png,jpg)?