我发现了一个有趣的事情,当我保存图片像这样(在输入我有*.txt文件只有一个URL的图像)
<?
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';
}
}
?>
我收到正确编码和保存的图像,输出到浏览器…
但是当我用'.'代替'.jpg'时。美元ext…
(这里是完整的代码)
<?
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';
}
}
?>
保存的文件有另一种类型- text/x-generic(但我需要image/x-generic),像这样(在中间)
我检查了-文件有相同的内容,
那么它是什么-服务器配置错误或php错误?
注:在这些文件上测试
wovo4ka.ru/图片/wovo4ka_logo.jpg
treto.ru/img_lb Settecento/,/per_sito/ambienti/01. jpg
检查扩展。例如,如果文件是wovo4ka.ru/pic/wovo4ka_logo.JPG而不是小写的jpg