Загружаемый продукт, обслуживаемый динамически, с помощью внешнего сценария PHP дает «файл не найден»Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Загружаемый продукт, обслуживаемый динамически, с помощью внешнего сценария PHP дает «файл не найден»

Сообщение Anonymous »

В моем магазине Woocommerce мне нужно продавать цифровые файлы (изображения JPEG), которые динамически обслуживаются сценарием PHP. (Это связано с тем, что изображения исходят из огромного удаленного каталога с 10 000 с изображениями, которые мы должны получить по требованию через их API. Не практично сохранять местные копии всех JPEG.)

Код: Выделить всё

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;
Если я посещаю этот скрипт в моем браузере, я получаю тест. Он был отклонен: < /p>

Невозможно использовать загружаемый файл 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»