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

3
这是一个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"

现在我尝试打印MIME类型:

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

或者

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

或者

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

我的哪里出错了?对于它们,我都得到了“错误”!


可能是 Laravel 4 中的文件上传 MIME 类型验证 的重复问题。 - Kiran Maniya
1个回答

4

如果您想知道文件的扩展名和MIME类型

您可以使用getClientOriginalExtension方法和getClientMimeType

或者您想使用其他方法,可以在此找到其他方法

简单的用法和更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() );

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接