如何处理 Laravel 中的文件?

How to handle file in Laravel?

客户端向服务器发送文件。它看起来像这样:

array:1 [▼
  "file" => array:5 [▼
    "name" => "MMM1(one row).TXT"
    "type" => "application/octet-stream"
    "tmp_name" => "/tmp/phpaKnJzE"
    "error" => 0
    "size" => 1365
  ]
] 

如果进行如下操作:

dd($_FILES);

我尝试像这样处理文件:

foreach ($_FILES["file"] as $file) {
   $file->store('tests');
   $file->getClientOriginalName();
}

但这对我不起作用。

它涉及一个错误:

调用数组的成员函数 getClientOriginalName()

$this->file->getClientOriginalName()

您需要在 post 操作中设置以下代码

$photo = $request->file('img');
$path = storage_path('app/public/avatars/');
$photo->move($path, $request->file('img')->getClientOriginalName());

如果您要上传图片,那么您还可以使用 intervention/image 包。 使用它,您还可以进行基本的图像处理。

在您的控制器 post 操作中执行以下操作:

 use Intervention\Image\Facades\Image;

if($request->hasFile('image')){
    $image    =  \Image::make( $request->file( 'image' ) );
    $image->save( storage_path('images/'. $request->file('image')->getClientOriginalName()));
}