laravel 检查上传表单中的文件扩展名

laravel check file extension in upload form

这是 html 形式:

<form method = "post" action="...">
   <input type="text" name="subject" />
   <input type="file" type="files['new']['file']"/>
   <input type="text" type="files['new']['name']"/>
</form>

现在我尝试在服务器中读取 (laravel)。

   public function chechkForm(request $request){
      $input = $request->all();
      dd(input['files']['new']['file' );
   }

结果是:

UploadedFile {#1356 ▼
  -test: false
  -originalName: "GK-Footer-Logo.png"
  -mimeType: "image/png"
  -error: 0
  #hashName: null
  path: "C:\Users\ali\AppData\Local\Temp"
  filename: "phpC3BF.tmp"
  basename: "phpC3BF.tmp"

现在我尝试使用这些来打印 mimetype:

$input['new0']['content']['mimeType']

$input['new0']['content']->mimeType

$input['new0']['content']->mimeType()

我哪里错了?我得到了他们所有人 'error'!

如果您想知道扩展名和 mime 类型

您可以使用 getClientOriginalExtension 方法和 getClientMimeType

或者其他你想用的可以在这里找到other methods

简单的用法和更多laravel方式

你可以这样设置表格

<form method = "post" action="..." enctype="multipart/form-data">
... other input ...
<input type="file" name="picture"/>
.... other input ....
</form>

在控制器中,您可以使用辅助文件进行处理('field_name');

public function checkForm(Request $request){
  $file = $request->file('picture');
  dd( $file->getClientOriginalExtension() );
  dd( $file->getClientMimeType() );

}