Ответ 1
Вам нужно добавить заголовок ответа HTTP "Content-Disposition"
Response.AppendHeader("content-disposition", "attachment; filename=\"" + fileName +"\"");
Приветствия.
Могу ли я узнать, как назначить имя файла для загрузки файла a-href.
<a href="#" onclick="location.href='http://localhost:8080/couch/getFile?dbName=xxx&file=test.xml'; return false;">get-file</a>
Если щелкнуть правой кнопкой мыши и сохранить как: службы, работающие в фоновом режиме, вернут содержимое test.xml, и пользователь сможет сохранить его локально. Но здесь каждый раз пользователю нужно ввести имя файла для сохранения. Вместо этого я думаю потянуть test.xml. Могу ли я узнать, как указать браузеру использовать "test.xml" в качестве имени файла для загрузки?
Будет ли работать настройка заголовков для ответа HTTP? если так, могу ли я знать, как мы можем это сделать?
Вам нужно добавить заголовок ответа HTTP "Content-Disposition"
Response.AppendHeader("content-disposition", "attachment; filename=\"" + fileName +"\"");
Приветствия.
Заголовок HTTP Content-Disposition
позволяет предложить имя файла.
Поле заголовка ответа Content-Disposition […] можно использовать для присоединения дополнительных метаданных, таких как имя файла, которое будет использоваться при локальном сохранении полезной нагрузки ответа.
Если вы посмотрите на BNF, то увидите, что имя файла указано в виде quoted-string
в quoted-string
:
quoted-string = (<"> * (qdtext | quoted-pair) <">)
Это будет правильный пример:
Content-Disposition: attachment; filename="fname.ext"
Пожалуйста, обратите внимание, что одинарные кавычки '
не являются действительными. Если вам нужно включить кавычки (") в ваше имя файла, вы можете использовать \". Однако RFC-6266 предлагает избегать включения цитат:
Избегайте включения символа "\" в форме строки в кавычках параметра имени файла, так как некоторые пользовательские агенты не поддерживают экранирование, и "\" можно считать недопустимым символом пути.
В современных браузерах вы также можете использовать атрибут загрузки по тегу ссылки:
<a href="#" onclick="location.href='http://localhost:8080/couch/getFile?dbName=xxx&file=test.xml'; return false;" download="test.xml">
get-file
</a>
Вы можете проверить его поддержку на я могу использовать