Как скачать файл принудительно скачать из сценария php в java?

1

У меня есть php-скрипт на моем сервере, который заставляет скачивать, когда задан правильный ключ. Я хочу загрузить файл, который скрипт загружает, а не сам сценарий, используя java. Я вижу вопросы, которые отвечают, как загрузить файл, который находится на определенном URL-адресе, но не как загрузить файл, принудительно с помощью скрипта. Также можно было бы маршрутизировать загрузку по определенному пути вместо того, чтобы она попала в папку загрузки компьютера или куда бы она не переместилась автоматически? Здесь мой соответствующий php-скрипт:

header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"" . str_replace(" ", "_", $arrRES['file']) . "\"");                    
echo $strFile;

и java будет что-то вроде:

URL url= new URL("http://supremesharkbot.com:8080/update/?key="+activationkey);

но тогда я не знаю, куда идти оттуда. благодаря

  • 2
    Нет, вы не можете указать браузеру, где сохранить файл на клиентском ПК, это находится под контролем пользователя этого клиентского ПК, чтобы не дать злобным людям писать скрипты для загрузки вещей типа вирусея или перезаписывать критические системные файлы.
  • 0
    Итак, это не самая важная проблема, я думаю, вы, вероятно, не можете сказать, где сохранить файл. Но как вы скачиваете его из скрипта в первую очередь? @MarkBaker
Показать ещё 1 комментарий
Теги:
download

1 ответ

0

Я подозреваю, что проблема здесь:

echo $strFile;

Я бы посоветовал использовать file_get_contents() (http://php.net/manual/en/function.file-get-contents.php)

$strFile = file_get_contents($arrRES['file']);
echo $strFile;

Я также предлагаю заголовки, которые лучше всего подходят для каждого типа файла. Не пытайтесь принудительно загрузить, пусть пользователь или их предпочтение определяют ho9w для обработки файла. Может сделать тип файла более общим, поэтому браузер будет запрашивать чаще:

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . str_replace(" ", "_", $arrRES['file']) . "\"");
header("Content-Length: " . filesize($arrRES['file']));
$strFile = file_get_contents($arrRES['file']);
echo $strFile;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню