Код: Выделить всё
https://example.com/fetch_image.php?id=12345
Скрипт PHP выглядит так (упрощено):
Код: Выделить всё
$ch = curl_init();
...
$result = curl_exec($ch); # fetch the desired JPEG image data
...
header('Content-Type: image/jpeg');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="test.jpg"');
header('Content-Description: File Transfer');
echo $result;
Невозможно использовать загружаемый файл fetch_image.php? Id = 12345, поскольку
не имеет допустимого типа файла. Разрешенные типы включают:
jpg | jpeg | jpe, gif, png, bmp, tiff | tif, [... и т. Д.] < /p>
< /blockquote>
ОК, хорошо, я не хочу «разрешать php тип файла» (звучит как головная боль безопасности). чтобы я мог получить доступ к своему сценарию с помощью jpg url: < /p>
Код: Выделить всё
RewriteRule ^REDIRECT_shop_download.jpg https://example.com/fetch_image.php [L,R=301]
Теперь я могу использовать этот URL, который примет WooCommerce:
Код: Выделить всё
https://example.com/REDIRECT_shop_download.jpg?id=12345
Опять же, это отлично работает при вручную в браузере. Эта ошибка все еще возникает, даже если я удаляю вызовы Header из моего скрипта PHP (поэтому она обслуживает файл, не возвращая его в качестве test.jpg ).
Я понятия не имею, как диагностировать это. Что не так, и как я могу заставить его работать с действительным URL -адресом загрузки, который я предоставил?
Подробнее здесь: https://stackoverflow.com/questions/796 ... file-not-f