не удается заставить php сохранить имя файла с правильным именем
Вопрос
По какой-то причине при использовании этого кода файл, который он выводит, называется просто ".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, буду признателен за любую помощь.
Решение
Выглядит как эта строка
$ourFileName = $title.jpg;
Должно быть
$ourFileName = $title . ".jpg";
Это должно выполняться до тех пор, пока вы уверены, что в $_GET['title'] есть значение;
Другие советы
Вы уверены $GET['title']
это правильно?Суперглобальной переменной для доступа к значениям параметра GET является $_GET
, не $GET
.
Попробуйте это $ourFileName = $title .".jpg";
Похоже, это должно быть следующее:
$ourFileName = $title.'.jpg';
Несомненно, должно быть
$title = $_GET['title'];
$url = $_GET['url'];
$ourFileName = $title.'.jpg';
Хотя, похоже, там целый мир проблем с безопасностью!Скрипт, который перезаписывает любой файл, к которому у него есть разрешения, файлом по выбору злоумышленника!