php - 将文件上传到 laravel 7 时总是返回 null
问题描述
我在将文件上传到 laravel 时遇到问题,它的 pdf 或图像总是返回到null
这是视图
{!! Form::open(['action' => 'TransactionInController@store', 'method' => 'POST', 'autocomplete' => 'off',
'class' => 'form-horizontal', 'enctype' => 'multipart/form-data']) !!}
<div class="row">
{{ Form::label('Device Document', '', ['class' => 'col-sm-2 col-form-label']) }}
<div class="col-sm-7">
{{ Form::file('device_document') }}
<p style="color: red;">@error('device_document') {{ $message }} @enderror</p>
</div>
</div>
{!! Form::close() !!}
这是我使用的控制器
public function store(Request $request)
{
$this->validate($request, [
'device_document' => 'nullable|max:8192|mimes:pdf'
]);
$transactionsin = new TransactionIn;
$imageName = $request->input('device_document');
$request->image->move(public_path('document-image'), $imageName);
$transactionsin->save();
return redirect('/transactionsin');
}
我知道它之前被问过,我已经尝试了几种方法来上传文件这个错误。
这是我在运行代码时收到的错误消息
在 null 上调用成员函数 move()
但是如果我将控制器中的代码更改为像这样更简单的代码
public function store(Request $request)
{
$this->validate($request, [
'device_document' => 'nullable|max:8192|mimes:pdf'
]);
$transactionsin = new TransactionIn;
$transactionsin->device_document = $request->input('device_document');
$transactionsin->save();
return redirect('/transactionsin');
}
它不会返回任何错误消息,但会保存null
在数据库中。
解决方案
您可以使用 file() 方法而不是输入法访问文件,并在上传图像后使用asset() 函数获取图像路径,如下代码所示
$transactionsin = new TransactionIn;
$image= $request->file('device_condition');
//upload imaage
$image->move(public_path('document-image'), $image->getClientOriginalExtension());
//asset() function use store path
$transactionsin->device_document = asset('document-image/'.$image->getClientOriginalExtension());
$transactionsin->save();
推荐阅读
- react-native - Expo CLI 和 React Native CLI 有什么区别?
- java-8 - 使用 rxjava 1 的并行调用
- c++ - c++ std::getline / std::sort 没有按预期工作
- spring - Spring Boot 安全性:请求的 url 创建了不需要的 redis 会话
- php - 'id_rsa_bblc' 的权限 0644 太开放
- amazon-dynamodb - on dynamoose update ValidationException: 键上的条件数无效
- sql - 出版到期日存档记录
- python - tensorflow.python.framework.errors_impl.UnknownError:重命名失败:输入/输出错误
- c# - 如何在不更改 C# 中的密钥的情况下将 RSAParameters 密钥导入和导出到文件
- apache-spark - 可以使用 Sqoop 在 IMPORT 上执行连接吗?