У меня есть API Laravel 4.2, который при создании ресурса принимает файлы. Файл извлекается с помощью Input::file('file')
Теперь я хочу написать сценарий (также в Laravel), который будет создавать несколько ресурсов (поэтому я не могу использовать HTML-форму, которая отправляет POST на конечную точку API). Как я могу перевести путь к файлу в экземпляр UploadedFile
чтобы Input::file('file')
забрал его в API?
Просто создайте экземпляр самостоятельно. API:
http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/File/UploadedFile.html
Таким образом, вы должны уметь:
$file = new UploadedFile( '/absolute/path/to/file', 'original-name.gif', 'image/gif', 1234, null, TRUE );
Примечание. Вы должны указать 6-й параметр построения как TRUE, поэтому класс UploadedFile знает, что вы загружаете изображение через среду тестирования.
/** * Create an UploadedFile object from absolute path * * @static * @param string $path * @param bool $public default false * @return object(Symfony\Component\HttpFoundation\File\UploadedFile) * @author Alexandre Thebaldi */ public static function pathToUploadedFile( $path, $public = false ) { $name = File::name( $path ); $extension = File::extension( $path ); $originalName = $name . '.' . $extension; $mimeType = File::mimeType( $path ); $size = File::size( $path ); $error = null; $test = $public; $object = new UploadedFile( $path, $originalName, $mimeType, $size, $error, $test ); return $object; }