no puedo obtener php para guardar el nombre de archivo con el nombre correcto

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

  •  20-08-2019
  •  | 
  •  

Pregunta

Por alguna razón, cuando se usa este código, el archivo que genera se llama " .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>");
?>

Estoy bastante seguro de que tiene que ver con declarar $ ourFileName, cualquier ayuda sería apreciada.

¿Fue útil?

Solución

Parece esta línea

$ourFileName = $title.jpg;

Debería ser

$ourFileName = $title . ".jpg";

Eso debería hacerlo siempre y cuando esté seguro de que hay un valor en $ _GET ['title'];

Otros consejos

¿Estás seguro de que $GET['title'] es correcto? La variable superglobal para acceder a los valores del parámetro GET es $_GET, no $GET.

Prueba esto     $ ourFileName = $ título. " .jpg " ;;

Parece que debería ser lo siguiente:

$ourFileName = $title.'.jpg';

Seguramente debería ser

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

¡Parece un mundo de problemas de seguridad allí sin embargo! ¡Un script que sobrescribe cualquier archivo para el que tenga permisos con un archivo de atacantes que elijan!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top