Выборка файла из базы данных с использованием asp - PullRequest
1 голос
/ 18 января 2012

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

sSQL = "SELECT filename, contenttype, binarydata FROM new_attachment WHERE filename = '" & filename & "'"

oRs.Open sSQL, conn, 3, 3

If Not oRs.EOF Then
    Response.ContentType = oRs(1)
    Response.BinaryWrite oRs(2)

End if

Это вернет файлы правильно, но с именем файла 'get_file.asp' вместо, скажем, 'myfile.txt».Посещаемый URL-адрес: .../get_file.asp?filename=myfile.txt.

Можно ли изменить имя файла, когда браузер предлагает пользователю сохранить его где-нибудь?

Ответы [ 2 ]

2 голосов
/ 18 января 2012

Вам необходимо отправить правильный заголовок:

Response.ContentType = "text/html"
Response.AddHeader "Content-Disposition", "attachment; filename=YOURFILE.TXT"
1 голос
/ 18 января 2012

Вам необходимо добавить заголовок Content-Disposition.

Заголовок должен выглядеть так:

Content-Disposition: attachment; filename=<name of file>

Примечание: способ конкатенации SQL открыт для SQL-инъекция - вам следует использовать параметры.

...