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

时间:2017-01-18 13:28:56

标签: php image laravel url upload

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

����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

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

var obj = {}
    for(i=0; i<interfaces.length; i++){
        console.log()
        for(j=0; j<reorderedInterfaces.length; j++){
            obj[interfaces[i].flowid] = reorderedInterfaces[j].flowid
            break;
        }

    } 

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

1 个答案:

答案 0 :(得分:0)

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

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

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

// 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类型