相关疑难解决方法(0)

在Laravel 4中替换File :: mime()(从文件扩展名获取mime类型)

Laravel 3有一个File :: mime()方法,可以很容易地从其扩展名中获取文件的mime类型:

$extension = File::extension($path);
$mime = File::mime($extension);
Run Code Online (Sandbox Code Playgroud)

升级到Laravel 4时出现错误:

调用未定义的方法Illuminate\Filesystem\Filesystem :: mime()

我也看不到在Filesystem API文档中提到mime类型.

在Laravel 4中获取文件mime类型的推荐方法是什么(请注意这不是用户上传的文件)?

php laravel laravel-4

10
推荐指数
3
解决办法
2万
查看次数

Laravel 多重验证器错误错误信息

问题:当上传的文件超过 5000kb 时,验证器返回 'required' 消息而不是 'max' 消息。为什么 ?

$file = (Input::file('inputName'));
$fileValidator = Validator::make(
   array('Field Name' => $file),
   array('Field Name' => 'required|max:5000|mimes:jpeg,png,bmp')
);

if($fileValidator->fails()){
   return $fileValidator->errors()->all(':message');
}
Run Code Online (Sandbox Code Playgroud)

更新:这个问题尤其发生在 *.psd 文件的验证上。


更新 2:当我 var_dump($file) 时,我可以看到;

object(Symfony\Component\HttpFoundation\File\UploadedFile)#9 (7) {
  ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  bool(false)
  ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  string(52) "4-47970_rsasecurityanalyticsevolutionofsiemebook.pdf"
  ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  string(24) "application/octet-stream"
  ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  int(0)
  ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=>
  int(1)
  ["pathName":"SplFileInfo":private]=>
  string(0) ""
  ["fileName":"SplFileInfo":private]=>
  string(0) ""
}
Run Code Online (Sandbox Code Playgroud)

如您所见, pathName 和 fileName 看起来为空。所以这就是为什么 laravel 返回所需的消息。这是新问题:为什么 fileName 为 null ?

php laravel laravel-4

5
推荐指数
1
解决办法
531
查看次数

使用Laravel 4文件上传mime类型验证

当我上传一个结构良好的MP3文件,Laravel 4告诉我,这不audio/mp3,但是application/octet-stream,这使得这种验证失败:

$validator = Validator::make(
    array('trackfile' => Input::file('trackfile')), 
    array('trackfile' => 'required|mimes:mp3')
);

if($validator->fails())
    return 'doesn\'t works because mime type is '.Input::file('trackfile')->getMimeType();
else
    return 'it works!';
Run Code Online (Sandbox Code Playgroud)

为什么不将文件上传为audio/mp3文件?

(我已添加'files' => true到表单声明中)

php file-upload mime-types laravel laravel-4

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

laravel ×3

laravel-4 ×3

php ×3

file-upload ×1

mime-types ×1