无法获取php以正确的名称保存文件名

时间:2009-06-28 17:11:03

标签: php curl fopen

出于某种原因,使用此代码时,它输出的文件名为“.jpg”。

<?
$title = $GET['title'];
$url = $GET['url'];

$ourFileName = $title.jpg;
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fclose($ourFileHandle);

$ch = curl_init ("http://www.address.com/url=$url");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec ($ch);
curl_close ($ch);

$fp = fopen("images/$ourFileName",'w');
fwrite($fp, $rawdata);
fclose($fp); 

echo ("<img src=images/$ourFileName>");
?>

非常确定它与声明$ ourFileName有关,任何帮助都会受到赞赏。

5 个答案:

答案 0 :(得分:3)

您确定$GET['title']是否正确?用于访问GET参数值的超全局变量是$_GET,而不是$GET

答案 1 :(得分:2)

试试这个     $ ourFileName = $ title。 “.JPG”;

答案 2 :(得分:1)

看起来应该如下:

$ourFileName = $title.'.jpg';

答案 3 :(得分:1)

看起来像这一行

$ourFileName = $title.jpg;

应该是

$ourFileName = $title . ".jpg";

只要您确定$ _GET ['title']中有值,就应该这样做;

答案 4 :(得分:1)

当然应该是

$title = $_GET['title'];
$url = $_GET['url'];
$ourFileName = $title.'.jpg';

虽然看起来像是一个安全问题的世界!一个脚本,用一个攻击者选择的文件覆盖它有权访问的任何文件!