如何将一些在textarea中输入的文本存储为laravel中的文本文件?

时间:2017-10-11 10:40:48

标签: php laravel

朋友您好我有一个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
    );
}

2 个答案:

答案 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

可以在https://laravel.com/docs/5.5/filesystem

找到相关文档