我正在开发一个web应用程序,其中包括将图像上传到服务器的功能.我用的是拉威尔.问题是当我上传一张照片时,拉维尔正在旋转图像.

这是我上传图片文件的代码.

$request->file('image_file')->store('images');

只需一行上传图像的代码.

我上传了这张照片.

enter image description here

然后,照片在服务器上旋转,变成这样.我在HTML标签中显示图像.

那么,问题出在哪里呢.如何阻止照片旋转?

推荐答案

当你用移动相机拍摄图像时,就会发生这种情况.

您可以使用exif_read_data()个字符查看图像数据

但是如果你想以原始的方式储存它,你可以使用intervention/imagepackage.

orientate()来改变它.下面是一个例子

$img = \Image::make($request->file('image_file')->getRealpath());
$img->orientate();

但是如果你不想用Package,你可以试试

$exif = exif_read_data($request->file('image_file'));
if(!empty($exif['Orientation'])) {
    switch($exif['Orientation']) {
        case 8:
            $image = imagerotate($image,90,0);
            break;
        case 3:
            $image = imagerotate($image,180,0);
            break;
        case 6:
            $image = imagerotate($image,-90,0);
            break;
    }
}

希望这有帮助.

Laravel相关问答推荐

try 编写一个函数,如果产品存在,则无法删除特定类别

laravel vue 惯性分页器删除上一个和下一个链接

我的共享主机上的每个帖子请求都出现 503 服务不可用

从主类别模型 laravel 中获取子类别翻译

Laravel 从 5.1 升级到 5.2.0 错误

Laravel/Eloquent:致命错误:在非对象上调用成员函数 connection()

Laravel + Plupload 上传到 S3 响应以进行预检无效 - CORS

Laravel 5.4 - 如何为同一个自定义验证规则使用多个错误消息

如何在laravel中将数组转换为字符串?

Laravel 5.1 - 如何在进度条上设置消息

上传时Laravel正在旋转图像

如何对有序的has many关系进行分页?

Laravel - 排序的集合输出不是数组

Laravel - 如何恢复本地存储符号链接并刷新

Laravel Blade 没有额外的空格?

路由模型绑定不起作用

如何使用外部图像生成 html div 的 screenshot截图?

在 Laravel 的 Homestead 中运行 PHPUnit

在 Laravel 5 控制器中找不到类App\Http\Controllers\DB

向 Laravel 重定向添加一个锚点