2014-09-03 1 views
-1

Я искал дни, не повезло.Сохранение файлов пользователю Компьютер в VB.Net

Может ли кто-нибудь сказать мне, как сохранять файлы в VB.Net на любом компьютере? Утеряны статьи, но они только сообщают вам о сохранении на вашем собственном компьютере, предоставляя доступ к папкам, а не случайный компьютер пользователя.

Вы можете увидеть мой пример здесь http://hanontest.com/POShellCreator.aspx (Вы должны ввести текст в код задачи, идентификатор проекта и заметки поле, а затем нажмите кнопку создать. Затем нажмите кнопку Экспорт, вы увидите сообщение об ошибке.)

Я могу пойти местный сайт магазина пиццы и загрузить меню pdf, я знаю, что это возможно.

В моем примере это сохраняет, когда вы нажимаете кнопку, я хотел бы сохранить как диалог, если кто-то знает, как это сделать.

Вот сохранить строку:

Dim regDate As Date = Date.Now() 
     Dim strDate As String = regDate.ToString(".yyyy\.MM\.dd") 
     TextBox5.Text = "c:\temp\" & Vendor & "&" & Vendor2 & "&" & Vendor3 & "&" & Vendor4 & TaskEmpty & strDate & ".csv" 

Вот как я спасаю:

Public Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 

    'Define Path to save file. 
    Dim path As String = TextBox5.Text 

    ' Create or overwrite the file. 
    Dim fs As FileStream = File.Create(path) 

    ' Add text to the file. 
    Dim info As Byte() = New UTF8Encoding(True).GetBytes(TextBox3.Text) 
    fs.Write(info, 0, info.Length) 
    fs.Close() 
End Sub 
+0

Если это веб ASP.NET приложение, то ваш код на стороне сервера не сможет сохранить файл непосредственно на компьютере, кто-то просматривает ваш сайт в своем браузере. Они должны фактически загрузить файл с URL-адреса. Этот URL-адрес может быть фактическим файлом на сервере, который вы сохраняете, или может быть просто сформирован по запросу. – jmcilhinney

ответ

1

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

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

Вам необходимо отправить данные до клиента в Response.OutputStream, вместо вашей страницы, а также сообщить браузеру, чтобы рассматривать его в качестве файла загрузки:

Response.ContentType = "text/plain"; 
Response.AppendHeader("Content-Disposition", "attachment; filename=textFile.csv"); 
+0

Текущая страница сохраняет мой диск c: как я хочу, он не сохраняется на сервере ...... Ошибка в том, что, когда я публикую на сервере, эта ошибка возникает при попытке сохранить на c : водить машину. –

+1

Хм, это не то, о чем говорит ошибка на сайте, с которым вы связались. Он пытается записать на 'C: \ temp \' ** на сервере **. Когда вы запускаете его локально, он, вероятно, сохраняет его на вашем компьютере, поскольку он работает как вы, но на сервере, когда я его запускал, у меня возникла ошибка при попытке записать на серверный диск. Вы не можете напрямую писать в файловую систему пользователя без диалога сохранения. Когда я сначала прочитал вопрос, я подумал, что ваша проблема заключается в том, что браузер показывает текстовый файл inline ... –

Смежные вопросы