Сохраненние на диск пользователя

Программирование Web-приложений и Web-сервисов.

Модератор: Ramzes

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Сохраненние на диск пользователя

Сообщение Lenny » 19.09.2006 (Вт) 0:47

Такой вопрос. Мне надо сохранить файл на диске у пользователя. т.е. когда пользователь найимает на линк, то ему открывается окно Open или Save, ну знаете,е то окошко обычно открывается когда загружаешь exe. Я создал файл, и просто дал ему расширение ну скажем ****.s2c. Так когда я в дебаг моде, то мне етот файл просто открывается в IE, на сервере вообще говорит что такой страницы нет. А мне надо что бы файл загружался клиенту. Кто нибудь может подсказать?
Спасибо.

mysorov
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 11.09.2006 (Пн) 8:06

Сообщение mysorov » 19.09.2006 (Вт) 11:29

на ссылке кликаешь правой кнопкой мыши и в контекстном меню выбираешь "Сохранить объект как...". укажи пользователям о такой схеме сохраниния. это один из вариантов.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 19.09.2006 (Вт) 14:32

[code]
My.Response.ContentType = "application/octet-stream"
My.Response.AddHeader("Content-Disposition", "attachment; filename=" & guid.ToString & ".s2c")
code]
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Сообщение Lenny » 19.09.2006 (Вт) 16:36

Загружает, но только почему то вместо текста в файле там
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>sv</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="sv.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwtMTI3OTMzNDM4NDs7PgMYwsa1eHPn2w+X1XHZcoMViukO" />

</form>
</body>
</HTML>

Хотя у меня там должно быть просто ТЕСТ ТЕСТ

Response.ContentType = "text/plain"
Response.AddHeader("Content-Disposition", "attachment; filename=save.txt")
тоже не работает

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Сообщение Lenny » 19.09.2006 (Вт) 17:11

Кажется я понял что происходит. У меня есть форма sv.aspx и на page load я делаю Response.ContentType = "text/plain"
Response.AddHeader("Content-Disposition", "attachment; filename=save.txt")
и вместо того что бы сохранить файл save.txt который у меня есть, у меня сохраняет форму sv.aspx В файл save.txt. А мне надо что бы в файле у меня была информация ту которую я должен отправить пользователю.
Просто он сохраняет исходный код для sv.aspx вместо файла save.тхт :(

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Сообщение Lenny » 19.09.2006 (Вт) 19:54

Спасибо Sebas, показал где начинать поиск.
Я нашёл то что надо. Этот код как раз сохранит всё в текстовом формате
Код: Выделить всё
        Dim strFileData As String
        Dim strFileName As String
        strFileData = "TEST TEST TEST" & vbNewLine & "TEST1 TEST1 TEST1"
        strFileName = "save.S2C"
        Try
            Dim byteArray() As Byte = System.Text.Encoding.ASCII.GetBytes(strFileData)
            Response.Clear()
            Response.ContentType = "text/plain"
            Response.AddHeader("Content-Disposition", "attachment;filename=" & strFileName & ";")
            Response.BinaryWrite(byteArray)
            Response.End()
        Catch ex As Exception
            Return
        End Try

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Сообщение Lenny » 21.09.2006 (Чт) 19:21

Кстати, а как я могу потом закрыть страницу через код?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 22.09.2006 (Пт) 8:33

Lenny писал(а):Кстати, а как я могу потом закрыть страницу через код?


Javascript
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 23.09.2006 (Сб) 0:37

Lenny писал(а):Кстати, а как я могу потом закрыть страницу через код?


window.close(); в клиентской функции, т.е.:

Код: Выделить всё
<script>
window.close();
</script>
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Сообщение Lenny » 03.10.2006 (Вт) 19:12

Не подскажете а как мне ексел файл сохранить таким же образом? А то он вместо уплода клиенту откривает его в броузере. Спасибо


Вернуться в ASP.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32

    TopList