朋友您好我有一个laravel项目,我试图将 textarea 输入元素中输入的一些文本保存为文本文件。而且我不知道该怎么做。这是我的刀片文件代码和控制器代码:
Blade文件表单代码的一部分
<form method="POST" action="/company" enctype="multipart/form-data">
{!! csrf_field() !!}
<textarea name="description">
Write something.
</textarea>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
控制器代码的一部分
public function store(Request $request){
$destinationPath='public/company_info';
$fileName = 'description.txt';
$request->description->storeAs(
$destinationPath, $fileName
);
}
答案 0 :(得分:1)
编辑config / filesystem.php
'open' => [
'driver' => 'local',
'root' => public_path(),
'url' => env('APP_URL'),
'visibility' => 'public',
],
在控制器中:
Storage::disk('open')->put('company_info/description.txt', $request->description);
答案 1 :(得分:-1)
您需要使用Laravel的文件存储方法。
您的控制器需要为存储名称空间设置别名:
use Illuminate\Support\Facades\Storage;
假设您的文件内容存储在变量名$ contents中,您将使用以下内容存储该文件:
Storage::put('public/company_info/file.txt', $contents);
要引用用户通过textarea提交的值,您需要使用$request->input('description')
。将它们组合在一起,您可以使用以下内容:
Storage::put('public/company_info/file.txt', $request->input('description'));
如果您还没有,请通过运行以下artisan命令确保公共文件可公开访问:
php artisan storage:link