Php 从远程服务器上载图像时使用错误的文件类型保存图像
我发现了一件有趣的事情,当我像这样保存图片时(输入时,我有*.txt文件,其中只有一个图像URL)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检查扩展名。例如,如
保存的文件有另一种类型-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';
}
}
?>