Как макетировать изображения и другие форматы файлов с помощью vfsStream?

Я умею издеваться над текстовыми файлами любого размера и изображениями любого разрешения.

Но для моих тестов мне нужны изображения любого разрешения и одновременно любого размера файла (например: 800x600px и 100 МБ), а также другие форматы файлов, такие как 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) любого размера и размера файла?

0 ответов

Другие вопросы по тегам