首页 文章

Laravel 5.3从url上传图像并获取图像数据

提问于
浏览
0

我正在尝试在本地上传youtube缩略图图像并获取其文件大小等数据 . 从这样的链接:http://img.youtube.com/vi/bnRVheEpJG4/maxresdefault.jpg我从这样的oembed获取url:

$info = Oembed::get($externalMedia);
$image = file_get_contents($info->image);

dd($image->getClientOriginalName());

我只是想将图像保存到服务器,但在此之前我想检查youtube maxresdefault缩略图是否存在 . 所以我想首先检查图像大小,如果它很低,我不上传它,因为那不是maxresdefault缩略图 . 不确定是否有任何其他方式来实现这一目标 . 但我没有上传到服务器的任何图像,我猜base64数据或不确定这是什么:

����JFIF``��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 90
��C




��C     

��h�"�� 
���}!1AQa"q2���#B��R��$3br� 
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������    
���w!1AQaq"2�B����  #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?����(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��(��Q�(��(��(��(��(��(��(��(��(�b�
(��
(��
(��
(��
(��
(���1F(��(��(��(��(��(��o�V:���������~j�Ǔ=�����(����?�&��K��=�뤟�ZQ~Ϟ �����e��T��W�]|׬�������_�5Y��+ա��3�����
�h�R��g�k?�ot��]d���T���$�����e��T�W���_��ޝ�%��URO�:�=n������y��K��Q����Y��[��������Ew_���o��c��*[_�Z�����/����t���R�ڽ�K��<[�K��q�����J?��t�����/?��:�����#_fϞh�����'��=K�V�������5�X�/�)jG0�����]/����9�٢����N�]����?�u�ȵn�$o�ٿ�d�G���-2O����b��=�e���<��_�%[�����n�(��/���>   ȣ"����1�i����?�}�ȕ�7���$_fx������D�as�
�_J|p��<�HmO_Դ�D��Εu,�?��(�������1�4T�C�K��T`у^����z�G�k�a���%�����1�x�i�������:߄���]]�-m���\��}��o���<C������Z��7���1�#�������C/i��إ�}��{���C'���:���*���H����/���>���k?���ޟs���Q�}������C��>���k*��   {�GM�]������ju(T��i��tW���O���ּ/��W?�f�����q]cÇ�ޥ��U�j|�E}�S�y�j���/��?���q�A��T��j�>y��������|7��7?�f���|@��b������3@3�_Y��7>%j?�u�    �����"��_�J����������Z����[�;�w����u��"ո���f�����u�ȴ��O��Wݱ��2M�Ğ�o�����Ø�4�������JF^�ρ����J�����������}��"Tr��~4ę>%��_��%0���|�6���P��C�`�����߅���"��t�ſ�|���_��Rޟs�}�������I�[����?�u�ȴã�/���������Z���|E�����:7���^  �����E���{��/��}��"ӹ��)�>�F�������_�}��"՘�����L�x��}�Ȕ�)�>�����_Ҿ���;�d������}�ȴÞ>2���O����Z�F/�a������*5����K��Tڅ��kRu^��Z�a��xO�<!���"���6�M&�-R��[�ֵ/��
��T���xWɰ�o

如何使用php / laravel上传图像并获取数据?

1 回答

  • 0

    你不能像对某些文字一样使用图像,你必须通知浏览器你正在给他一个图像,这样他就会知道如何处理它 .

    此外,当您执行 file_get_contents 时,您将原始数据作为字符串获取,因此您无法调用 $image->getClientOriginalName()

    您需要做的是使用图像类型向浏览器发送 Headers ,然后回显图像数据 .

    // get the media
    $info = Oembed::get($externalMedia);
    $image = file_get_contents($info->image);
    
    $imageInfo = getimagesizefromstring($image);
    $width = $imageInfo[0];
    $height = $imageInfo[1];
    
    if ($width > 100 && $height > 100) {
        // save image to file
        file_put_contents($newfilename, $image)
    }
    
    // send to the browser
    return response($image, 200)->header('Content-Type', $imageInfo['mime']);
    

    getimagesizefromstring()从二进制字符串返回width,height和mime类型

相关问题