Laravel Nova 在数据库和本地存储中存储原始文件名
Laravel Nova storing original file name in the database and in local storage
我在将原始文件名存储在数据库和磁盘存储中时遇到问题。该文件在数据库和 Nova 后端中正确保存,但在磁盘存储中只是保存为随机字符串。
在数据库中:my-user-friendly-file-name.pdf
在磁盘存储中:kfnakfncanjnaskdmkasniodanwjioeocniosandoaisndcacs.pdf
我已经按照文档进行操作,下面的代码似乎应该可以工作,但实际上没有。
File::make('Attachment PDF Upload', 'attachment_url')
->rules('file')
->disk('attachments')
->storeOriginalName('attachment_url')
->storeAs(function(Request $request) {
return sha1($request->attachment_url->getClientOriginalName()) . '.' . pathinfo($request->attachment_url->getClientOriginalName(), PATHINFO_EXTENSION);
}),
有没有人遇到过类似的问题?
正如@ceejayoz 所说,我最终为原始文件名存储了一个额外的列,然后在您的代码中根据需要调用它,在我的例子中是通过电子邮件发送附件。
File::make('Attachment PDF Upload', 'attachment_url')
->store(function (Request $request, $model) {
return [
'attachment_url' => $request->attachment_url->store('/', 'attachments'),
'attachment_original_name' => $request->attachment_url->getClientOriginalName(),
];
}),
然后像这样简单地附加:
$message->attach($attachment->attachment_url, ['as' => $attachment->attachment_original_name]);
我在将原始文件名存储在数据库和磁盘存储中时遇到问题。该文件在数据库和 Nova 后端中正确保存,但在磁盘存储中只是保存为随机字符串。
在数据库中:my-user-friendly-file-name.pdf
在磁盘存储中:kfnakfncanjnaskdmkasniodanwjioeocniosandoaisndcacs.pdf
我已经按照文档进行操作,下面的代码似乎应该可以工作,但实际上没有。
File::make('Attachment PDF Upload', 'attachment_url')
->rules('file')
->disk('attachments')
->storeOriginalName('attachment_url')
->storeAs(function(Request $request) {
return sha1($request->attachment_url->getClientOriginalName()) . '.' . pathinfo($request->attachment_url->getClientOriginalName(), PATHINFO_EXTENSION);
}),
有没有人遇到过类似的问题?
正如@ceejayoz 所说,我最终为原始文件名存储了一个额外的列,然后在您的代码中根据需要调用它,在我的例子中是通过电子邮件发送附件。
File::make('Attachment PDF Upload', 'attachment_url')
->store(function (Request $request, $model) {
return [
'attachment_url' => $request->attachment_url->store('/', 'attachments'),
'attachment_original_name' => $request->attachment_url->getClientOriginalName(),
];
}),
然后像这样简单地附加:
$message->attach($attachment->attachment_url, ['as' => $attachment->attachment_original_name]);