Сохранить как имя файла диалога

У меня есть сервер, и веб-клиент обращается к нему для загрузки файла.

Когда я получаю доступ

сервер/.../МойФайл/

загружается файл с именем «MyFile», и отображается всплывающее окно «Открыть, сохранить как». Когда я нажимаю «Сохранить как», предлагаемое имя «MyFile».

Как изменить его на другое имя?

p.s. Я не могу изменить /MyFile на /SomeOtherFile, так как эта ссылка каждый раз содержит другой файл, в зависимости от работы, проделанной сервером. Таким образом, предложение "MyFile" в сохранении бессмысленно. Я бы предпочел предложить имя файла, который я действительно скачал.

Спасибо Юра


person Yura    schedule 11.08.2010    source источник
comment
Какой язык, фреймворк и сервер вы используете?   -  person Lasse Espeholt    schedule 11.08.2010


Ответы (2)


Вам нужно отправить этот заголовок с ним:

content-disposition: attachment; filename="somefilename.ext"

В Asp.Net это следующее. Но какой язык, фреймворк и сервер вы используете?

context.Response.AddHeader("content-disposition", "attachment; filename=\"somefilename.txt\"");

Если вы используете сервлеты Java, это примерно так: (Некоторое время Java не использовался)

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    response.setHeader("content-disposition", "attachment; filename=\"somefilename.ext\"");

    //Write the file to response and maybe set content type
}
person Lasse Espeholt    schedule 11.08.2010
comment
Мой сервер написан на Java. (Я использую Jetty) Как бы этот код выглядел для меня? - person Yura; 11.08.2010
comment
@Юра, может что-то в этом роде. В противном случае опубликуйте свой код get-file-code. - person Lasse Espeholt; 11.08.2010

Все веб-серверы имеют расширение файла сопоставления, если запрос заставил веб-сервер искать расширение файла в своей таблице сопоставления, если они нашли, они передали его соответствующему обработчику, как и все файлы *.aspx, переданные aspnet_isapi.dll и управление было передано этому обработчику, но обычные файлы, такие как .txt или .png, не обрабатываются IIS, если вы хотите взять их под контроль, вы должны добавить это расширение файла в таблицу сопоставления веб-сервера и сопоставить это расширение с желаемым обработчиком, а затем ты можешь взять это под свой контроль

Вы можете найти множество полезных статей, погуглив (расширение сопоставления типов пантомимы)
надеюсь, это поможет!

person Ehsan    schedule 11.08.2010