2016-08-03 2 views
1

Я разрабатываю программу в VS2015. Я создал файл abc.html динамически. Теперь мне нужна функциональность, когда пользователь нажимает кнопку, которую Html-файл должен открыть или сохранить в браузере. Как я могу это сделать? код для создания файла Html Динамически выглядит следующим образом:Как загрузить html-файл одним нажатием кнопки в asp.net?

стороне клиента:

<asp:button ID="BtnGenrateHTML" runat="server" text=" Generate HTML " OnClick="btnAddnew_Click" /> 

код Позади как следует

protected void TestThisHTML(object sender, EventArgs e) 
    { 
     string sFileFullName; 
     string sFilePath; 
     string sFileName; 

     string strHTMLGrid = ""; 


     strHTMLGrid = strHTMLGrid + "Dear Customer,<BR><BR> Please provide below OTP to complete registration <BR><BR> "; 
     strHTMLGrid = strHTMLGrid + "<BR><BR> This OTP is valid for 15 minutes."; 
     strHTMLGrid = strHTMLGrid + "<BR><BR> With Best Regards - Indiefy"; 
     strHTMLGrid = strHTMLGrid + "<BR><BR> Hi My name is Basant Gera"; 



     sFilePath = Server.MapPath(""); 
     sFileName = "abc.html"; 
     sFileFullName = sFilePath + "\\" + sFileName; 
     if (!Directory.Exists(sFileFullName)) 
     { 
      Directory.CreateDirectory(sFilePath); 
     } 
     // if it exist than to delete it. 
     if (System.IO.File.Exists(sFileFullName)) 
     { 
      System.IO.File.Delete(sFileFullName); 
     } 

     // If it deleted than we need to create it again 
     FileStream fs = new FileStream(sFileFullName, FileMode.Create); 
     using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) 
     { 
      w.WriteLine(strHTMLGrid); 
     } 

     fs.Close(); 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "", "fncpopup();", true); 
    } 

Теперь мой файл abc.Html работает нормально .. Теперь я хочу по щелчку кнопки этот Html-файл получить в браузере и спросить в браузере, который вы хотите открыть, или сохранить его в определенном месте.

<asp:button ID="BtnGenrateHTML" runat="server" text=" Generate HTML " OnClick="btnAddnew_Click" /> 

Местоположение, в котором сохраняется файл Html ----> Я использовал mappath.server, чтобы сохранить его в текущем каталоге.

Если возможно, сохраните его в папке загрузки в нашем каталоге ПК.

ответ

1

Вы пробовали посылать последний в ответ:

{... 
    .... 
    fs.Close(); 
    Response.ContentType = "application/octet-stream"; 
    Response.AppendHeader("Content-Disposition","attachment; filename=abc.html"); 
    Response.TransmitFile(sFileFullName); 
    Response.End(); 
    .... 
} 
+0

Его рабочий Высокий ... Я применил Но для базы знаний, могу я знаю, что это приложение/октет-поток и Content-Disposition «» присоединение; filename = abc.html ... Пожалуйста, дайте мне знать –

+0

@BasantGera В каждом запросе и ответе между сервером и клиентом есть HTTP-заголовки, содержащие информацию о браузере клиента, запрошенная страница, сервер Здесь, где добавление 'application/octet-stream' как тип содержимого, чтобы сообщить браузеру о существовании файла потока в ответе, поэтому, если вы замените его на «text/html», браузер поймет, что это html-файл. Для «Content-Disposition», «attachment; filename = abc.html' мы присваиваем заголовку http имя файла (abc.html) и отправляем его как вложение (открываем окно приглашения для загрузки в браузере). –

+0

вы можете увидеть о http headers [здесь] (http://code.tutsplus.com/tutorials/http-headers-for-dummies--net-8039) , пожалуйста, проверьте ответ как разрешенный, если это поможет вам –

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