Laravel如果用户没有在上传表单上选择它,是否可以添加一些默认文件到上传表单?



我需要从web表单上传数据,包括一个文件。但是,用户不需要下载该文件。如果文件没有被加载,那么Laravel自己应该加载一些默认文件,例如public/images/default .jpg。

但是我不明白如何将它添加到已经收到的请求中,而不是$file = $request->file('image')

有可能吗?

乌利希期刊指南:我已经尝试过file_get_contents()但这行不通。我需要在收到的文件上使用$file->getClientOriginalExtension()方法。如果文件是通过file_get_contents()获得的,那么这是不可能的。

$请求→文件('图像'):

IlluminateHttpUploadedFile {#1505 ▼
-test: false
-originalName: "1393001921377.jpg"
-mimeType: "image/jpeg"
-error: 0
#hashName: null
path: "C:xampptmp"
filename: "phpE7CB.tmp"
basename: "phpE7CB.tmp"
pathname: "C:xampptmpphpE7CB.tmp"
extension: "tmp"
realPath: "C:xampptmpphpE7CB.tmp"
aTime: 2022-06-09 07:32:27
mTime: 2022-06-09 07:32:27
cTime: 2022-06-09 07:32:27
inode: 3096224744023481
size: 48222
perms: 0100666
owner: 0
group: 0
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
linkTarget: "C:xampptmpphpE7CB.tmp"
}

我需要相同的对象,但file_get_contents('img/test.png') get:

b"ëPNGx1Ax00x00x00IHDRx00x00x00@x00x00x00@x08x03x00x00x00ØÀüýx00x00x01vPLTE÷÷÷┴┴┴ííí;;;HHH¶¶¶???¸¸¸¨¨¨OOOÔÔÔ°°°───mmmçççfffZZZ§§§···QQQGGG±±±MMMÞÞÞ¹¹¹CCCåååÒÒÒ@@@KKK┼┼┼ÂÂÁx10Íô}I Xƒö¬ÐPılx19x03x0E­°|%Èix03B└x03-x04ü$Iƶâx0FÎ^-═³╗ðx15x00x00x00x00IEND«B`é ◀"

获取文件:

$fileContent = file_get_contents($filePath);

然后您可以简单地将内容粘贴到数据库中,或者将文件复制到所需的位置。关于如何从路径上传文件,我建议遵循以下答案。使用file_get_contents上传文件

我在Laravel中找到了答案- UploadedFile实例的文件路径

需要创建新的UploadedFile对象:

if ($request['image']) {
$file = $request->file('image');
} else {
$path = public_path('images/deault.png');
$file = new UploadedFile(
$path,
'default-stadium.png',
'image/png'
);
}

最新更新