Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从远程服务器上载图像时使用错误的文件类型保存图像_Php_Image_Types - Fatal编程技术网

Php 从远程服务器上载图像时使用错误的文件类型保存图像

Php 从远程服务器上载图像时使用错误的文件类型保存图像,php,image,types,Php,Image,Types,我发现了一件有趣的事情,当我像这样保存图片时(输入时,我有*.txt文件,其中只有一个图像URL) 保存的文件有另一种类型-text/x-generic(但我需要image/x-generic),(在中间) 我检查了-文件的内容相同 那是什么-服务器配置错误还是php错误? 在这些文件上测试了p.S wovo4ka.ru/pic/wovo4ka_logo.jpg treto.ru/img_lb/Settecento/.IT/per_sito/ambienti/01.jpg检查扩展名。例如,如

我发现了一件有趣的事情,当我像这样保存图片时(输入时,我有*.txt文件,其中只有一个图像URL)


保存的文件有另一种类型-text/x-generic(但我需要image/x-generic),(在中间)

我检查了-文件的内容相同

那是什么-服务器配置错误还是php错误?

在这些文件上测试了p.S

wovo4ka.ru/pic/wovo4ka_logo.jpg


treto.ru/img_lb/Settecento/.IT/per_sito/ambienti/01.jpg检查扩展名。例如,如果文件是wovo4ka.ru/pic/wovo4ka_logo.JPG而不是小写的JPG,它将生成text/x-generic谢谢你的回答,但是我检查了扩展名,它是小写的,所以你的假设不适合这里。。。
<?

function cu($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_REFERER, 'http://treto.ru');
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $res_curl = curl_exec($ch);
    curl_close($ch);

    return $res_curl;
}

$uploaddir = 'uploads/';
foreach($_FILES as $file)
{
    $orig = $uploaddir .trim(basename($file['name']));
    if(move_uploaded_file($file['tmp_name'], $orig))
    {
        $images_arr = file($orig);

        foreach($images_arr as $v)
        {
            $data = cu(trim($v));  // get pic through cURL (it's the only way in my case)
            $filename = basename($v);
            $arr67 = explode('.',$filename);
            $ext = $arr67[count($arr67)-1];
            $save = rand(1000,9999).'__'.time().'.jpg';

            if(!is_file($uploaddir.$save))
            {                                       
                $im = imagecreatefromstring($data);
                if ($im !== false)
                {                               
                    imagepng($im,$uploaddir.$save);
                    imagedestroy($im);
                    $sizes = getimagesize($uploaddir.$save);
                    echo '<img src="'.$uploaddir.$save.'" alt="rt" title="'.$sizes[0].'*'.$sizes[1].'.'.$ext.'" border="0"><br />';
                }
                else
                {
                    echo 'An error occurred.<br />';
                }      
            }
            else
            {
                $sizes = getimagesize($uploaddir.$filename);
                echo '<img src="'.$uploaddir.$filename.'" alt="hh" title="'.$sizes[0].'*'.$sizes[1].'" border="0"><br />';
            }               
        }
    }
    else
    {
        echo 'error';
    }            
}

?>
<?

function cu($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_REFERER, 'http://treto.ru');
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $res_curl = curl_exec($ch);
    curl_close($ch);

    return $res_curl;
}

$uploaddir = 'uploads/';
foreach($_FILES as $file)
{
    $orig = $uploaddir .trim(basename($file['name']));
    if(move_uploaded_file($file['tmp_name'], $orig))
    {
        $images_arr = file($orig);

        foreach($images_arr as $v)
        {
            $data = cu(trim($v));  // get pic through cURL (it's the only way in my case)
            $filename = basename($v);
            $arr67 = explode('.',$filename);
            $ext = $arr67[count($arr67)-1];
            $save = rand(1000,9999).'__'.time().'.'.$ext;

            if(!is_file($uploaddir.$save))
            {                                       
                $im = imagecreatefromstring($data);
                if ($im !== false)
                {                               
                    imagepng($im,$uploaddir.$save);
                    imagedestroy($im);
                    $sizes = getimagesize($uploaddir.$save);
                    echo '<img src="'.$uploaddir.$save.'" alt="rt" title="'.$sizes[0].'*'.$sizes[1].'.'.$ext.'" border="0"><br />';
                }
                else
                {
                    echo 'An error occurred.<br />';
                }      
            }
            else
            {
                $sizes = getimagesize($uploaddir.$filename);
                echo '<img src="'.$uploaddir.$filename.'" alt="hh" title="'.$sizes[0].'*'.$sizes[1].'" border="0"><br />';
            }               
        }
    }
    else
    {
        echo 'error';
    }            
}

?>