php - Laravel 在上传时旋转图像

标签 php laravel file-upload

我正在开发一个涉及将图像上传到服务器的功能的网络应用程序。我正在使用 Laravel。问题是当我上传照片时,Laravel 正在旋转图像。

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

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

上传图片只需一行代码。

我上传了这张图片。

enter image description here

然后,照片在服务器上旋转,变成了这个样子。我在 HTML 标记中显示图像。 enter image description here

所以,有什么问题。如何阻止照片旋转?

最佳答案

当您使用移动相机拍摄图像时会发生这种情况。

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

但如果您想以原始方式存储它,您可以使用intervention/image package .

并使用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;
    }
}

希望这对您有所帮助。

关于php - Laravel 在上传时旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50277697/

相关文章:

javascript - PHP header 位置与 JavaScript 重定向

authentication - 如何验证网站中的 session

php - 使用 GET 的 HTML 表单多选

mysql - 将 MVC 网站和 MySQL 上传到 Webhost

php如何检测文件的扩展名

php - MYSQL 获取列

php - 将数组值从 Controller 传递到 Laravel 中的 View

php - 如何在 laravel 4 中使用 `where` 方法和 `with` 方法?

php - Laravel 循环问题

php - 在 SWFUpload 上发送电子邮件确认