Как я могу использовать кнопку html для загрузки файла DMG? - PullRequest
1 голос
/ 23 апреля 2020

Итак, я задал этот вопрос некоторое время go, и он сразу же закрылся, поэтому я более подробно расскажу, как, кажется, проблема связана с c типом файла dmg, с которым я до сих пор не сталкивался.

Я просто хочу иметь возможность нажать кнопку и затем загрузить dmg, не используя много javascript или любого другого.

Однако, используя мой код, файл dmg открывается в браузере, так что вы получите набор двоичных файлов gibberi sh, и файл не загрузится, если вы хотите увидеть, что я имею в виду, перейдите к https://lucas-testing.000webhostapp.com/release, а затем нажмите «Загрузить» для MacOS.

Имя файла dmg меняется, так как номер версии является частью имени, поэтому я использую php, чтобы получить информацию о файле и создать переменную, хранящую адрес этого сайта, например, текущую ссылку, сгенерированную моим PHP будет:

var downloadLinkAlt = "https://lucas-testing.000webhostapp.com/release/The City Of Truro Mariners - Management Console-1.0.19.dmg"

Мой код для загрузки этой ссылки:

<button onclick="location.href=downloadLinkAlt" id="DownloadByOSAlt" class="btn btn-sm btn-primary mt-3">Download for MacOS</button>

Я точно знаю, что приведенный выше код работает, поскольку он отлично работает с точно такой же ссылкой, но с вместо этого расширение exe-файла.

То, что я пробовал:

Атрибут загрузки, который можно использовать в HTML5 для принудительной загрузки таких вещей, как PDF:

<button onclick="location.href=downloadLinkAlt" id="DownloadByOSAlt" class="btn btn-sm btn-primary mt-3" download>Loading...</button>

Ссылка: https://www.w3schools.com/tags/att_a_download.asp

Вставка кнопки в форму и использование запроса на получение со ссылкой:

<form method="get" action=downloadLinkAlt>
   <button type="submit">Download!</button>
</form>

Ссылка: { ссылка }

Использование невидимого iframe, источник которого изменяется при нажатии кнопки:

document.getElementById('my_iframe').src = downloadLinkAlt;

<iframe id="my_iframe" style="display:none;"></iframe>

Ссылка: { ссылка }

Кто-нибудь есть какие-нибудь предложения относительно того, что попробовать дальше?

1 Ответ

0 голосов
/ 23 апреля 2020

Возможно, ваши методы загрузки не работают, скорее всего, веб-сервер не обслуживает правильный тип MIME для файла DMG. То, что файл загружается и вы получаете то, что похоже на gibberi sh, может быть признаком этого. Браузер не знает, чего ожидать.

Чтобы узнать, какой тип пантомимы сервер отправляет, откройте инструменты разработчика в вашем браузере, нажмите на сеть и посмотрите файл, который вы загружаете в списке.

Похоже, что поиск в Google указывает, что правильный тип пантомимы для файлов DMG - application\octet-stream. Если это не говорит этот тип, когда вы смотрите на это в инструментах разработчика, то это, вероятно, ваша проблема. Если это так, то, вероятно, что-то еще. Вот статья о типах пантомимы: https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Configuring_server_MIME_types. Прокрутите вниз до конца некоторые заметки о настройке различных типов веб-серверов MIME (Apache, IIS и т. Д. c).

Также обратите внимание на то, что ваш URL содержит пробелы. Они должны быть закодированы в процентах, чтобы быть действительными.

Еще один, возможно, более прямой способ загрузки - просто использовать гиперссылку, такую ​​как:

<a href="URL_to_your_flle.dmg">Download</a>

, которую вы могли бы оформить так, чтобы выглядеть кнопка.

...