не удается заставить php сохранить имя файла с правильным именем

StackOverflow https://stackoverflow.com/questions/1055295

  •  20-08-2019
  •  | 
  •  

Вопрос

По какой-то причине при использовании этого кода файл, который он выводит, называется просто ".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';

Хотя, похоже, там целый мир проблем с безопасностью!Скрипт, который перезаписывает любой файл, к которому у него есть разрешения, файлом по выбору злоумышленника!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top