Vous ne pouvez pas le faire.
Tout ce que vous pouvez faire est d'écrire le contenu du fichier à la réponse avec MIME correcte en-tête (par exemple "texte/plain") et le navigateur client ouvrira les données texte avec visionneuse configurée pour le type MIME fourni.
<%@ Page language="vb" runat="server" explicit="true" strict="true" %>
2 <script language="vb" runat="server">
3 Sub Page_Load(Sender As Object, E As EventArgs)
4 Dim strRequest As String = Request.QueryString("file") '-- if something was passed to the file querystring
5 If strRequest <> "" Then 'get absolute path of the file
6 Dim path As String = Server.MapPath(strRequest) 'get file object as FileInfo
7 Dim file As System.IO.FileInfo = New System.IO.FileInfo(path) '-- if the file exists on the server
8 If file.Exists Then 'set appropriate headers
9 Response.Clear()
10 Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name) ' comment this line if needed
11 Response.AddHeader("Content-Length", file.Length.ToString())
12 Response.ContentType = "application/octet-stream" 'this is MIME type
13 Response.WriteFile(file.FullName)
14 Response.End 'if file does not exist
15 Else
16 Response.Write("This file does not exist.")
17 End If 'nothing in the URL as HTTP GET
18 Else
19 Response.Write("Please provide a file to download.")
20 End If
21 End Sub
22 </script>
http://www.xefteri.com/articles/show.cfm?id=8
Voici légèrement modifié le code C# exemple
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true"%>
<script language="cs" runat="server">
public void Page_Load(object sender, EventArgs e)
{
byte[] buffer;
using (var memoryStream = new System.IO.MemoryStream())
{
buffer = Encoding.Default.GetBytes("Hello StackOverflow"); //Dummy data
memoryStream.Write(buffer, 0, buffer.Length);
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=hello.txt"); //This wil force browser to silently download file. you can comment this line to see difference
Response.AddHeader("Content-Length", memoryStream.Length.ToString());
Response.ContentType = "text/plain"; //This is MIME type
memoryStream.WriteTo(Response.OutputStream);
}
Response.End();
}
</script>
j'ai trouvé le code ci-dessous: MemoryStream ms = new MemoryStream(); StreamWriter sw = new StreamWriter (ms); Sw.WriteLine ("Ceci est un texte de test"); System.Diagnostics.Process.Start ("notepad.exe", "FileNmae"); mais System.Diagnostics.Process.Start a besoin d'un nom de fichier ... comment puis-je faire ce travail? thnaks – LostLord
Comment faire une nouvelle ligne dans les commentaires? – LostLord
@LostLord votre code exécutera nodepad sur le serveur, pas sur le client :) –