【问题标题】:Laravel image upload returns only partial object on some imageLaravel 图像上传仅返回某些图像上的部分对象
【发布时间】:2019-05-01 14:21:34
【问题描述】:

我已经用 Laravel 5.6 构建了一个文件上传系统。我遇到的问题是某些图像可以上传,而某些图像会导致错误。我发现一些图像(oimage 对象)缺少“文件名”和“临时存储”值。

除了这两个值之外,对象已完全填充。

当我在照片编辑软件工具中打开无法上传的图像并将其重新保存到桌面时,图像将上传。

个人觉得跟颜色(RGB格式)什么的有关系。

无论如何,当我用工作照片打印我的对象时,我得到了这个:

Illuminate\Http\UploadedFile Object ( [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => photo-1754.jpg [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 [hashName:protected] => [pathName:SplFileInfo:private] => /tmp/phpMyw0zP [fileName:SplFileInfo:private] => phpMyw0zP )

当我上传一张不起作用的照片时,我得到了这个:

Illuminate\Http\UploadedFile Object ( [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => natuurlijk_adverteren-1754.jpg [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => application/octet-stream [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 1 [hashName:protected] => [pathName:SplFileInfo:private] => [fileName:SplFileInfo:private] => )

是否有人知道可能导致此问题的原因以及 - 或如何解决它?它只是偶尔发生在特定照片上,但又一次......我们不能因为图片上传而破坏上传表单:P

最好的问候

【问题讨论】:

  • 您是否在post_max_sizeupload_max_filesize 中的PHP 配置中允许了足够大的文件?
  • 好建议,谢谢!我在@ Mayank 下面的回复中添加了我的 cmets。目前这两个设置都设置为 128M,所以应该不错。我们在 Apache 上使用 PHP7.2-FPM。

标签: laravel file upload


【解决方案1】:

看看这个:

[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0

[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 1

第一个文件没有问题,这就是错误为 0 的原因,但第二个文件有一些问题,例如无效文件或文件大小超过 php.ini 中允许的大小,这就是它没有显示其他详细信息的原因.

【讨论】:

  • 很好的答案,谢谢!~这表明某处确实存在错误。我尝试在服务器上检查我的日志,但找不到与此相关的任何内容。我会仔细检查我的 php.ini 设置,以确保它们设置得足够高。
  • post_max_size 设置为 128M(用于测试目的),upload_max_filesize 也设置为 128M。我尝试了各种设置以防万一。尝试了 12M、32M、64M 和 128M 或两者。不起作用的文件大小为 2.3Mb,起作用的文件(在 Gimp 中打开并保存)大小为 2.0Mb。我们在 Apache 上使用 PHP7.2-FPM。执行 phpinfo() 时,这两个设置 (128M) 也是可见的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2018-04-27
相关资源
最近更新 更多