如何使一个文本文件在内存中,写的东西它,打开记事本,在客户端,并打开文件的呢? [英] How Make A Text File In Memory And Write Something On It And Open NotePad In Client And Open That File In It?
问题描述
我怎样才能让一个文本文件在内存(RAM - >保存无处)而写的东西它,并在客户端浏览器的顶部打开记事本,打开文本文件,并让用户保存它由他/她的自我? - >在$ C $落后。
由于在今后的前进
最好的问候
您不能这样做。
你所能做的就是写文件的内容,以响应与正确的 MIME 型头(例如,text / plain的)和客户端浏览器将打开文本数据用配置的浏览器所提供的MIME类型。
<%@页面语言=VB=服务器明确=真正的严格=真正的%>
2'; SCRIPT LANGUAGE =VB=服务器>
3小组的Page_Load(发件人为对象,E作为EventArgs的)
4昏暗strRequest的String =的Request.QueryString(文件) - 如果事情被传递到文件查询字符串
5如果strRequest<> 那么'获取该文件的绝对路径
6昏暗的路径的String =使用Server.Mappath(strRequest)获取文件对象的FileInfo
7昏暗的文件作为System.IO.FileInfo =新System.IO.FileInfo(路径) - 如果文件存在服务器上
8如果file.Exists然后设置相应的头
9 Response.Clear()
10 Response.AddHeader(内容处置,附件;文件名=&放大器; file.Name)如果需要,注释此行
11 Response.AddHeader(内容长度,file.Length.ToString())
12 Response.ContentType =应用程序/八位字节流这是MIME类型
13 Response.WriteFile(file.FullName)
14到Response.End'如果文件不存在
15否则
16的Response.Write(此文件不存在。)
17结束如果没有在URL作为HTTP GET
18否则
19回复于(请提供要下载的文件。)
20结束如果
21结束小组
22℃/脚本>
http://www.xefteri.com/articles/show.cfm? ID = 8
下面是稍微修改C#示例code
<%@页标题=主页LANGUAGE =C#AutoEventWireup =真正的%>
< SCRIPT LANGUAGE =CS=服务器>
公共无效的Page_Load(对象发件人,EventArgs的)
{
byte []的缓冲区;
使用(VAR的MemoryStream =新System.IO.MemoryStream())
{
缓冲= Encoding.Default.GetBytes(你好计算器); //虚拟数据
memoryStream.Write(缓冲液,0,buffer.Length);
Response.Clear();
Response.AddHeader(内容处置,附件;文件名= hello.txt的); //这个WIL力的浏览器以静默方式下载文件。你可以发表评论此行看到的区别
Response.AddHeader(内容长度,memoryStream.Length.ToString());
Response.ContentType =text / plain的; //这是MIME类型
memoryStream.WriteTo(Response.OutputStream);
}
到Response.End();
}
< / SCRIPT>
How can i Make A Text File In Memory(Ram -> Save NoWhere) And Write Something On It And Open NotePad on top of Client browser And Open That Text File In It And Let the user save it by him/her self? -> in code behind
thanks in future advance
best regards
You can't do that.
All you can do is write content of the file to Response with correct MIME type in header (for example "text/plain") and client browser will open text data with configured viewer for provided MIME type.
<%@ 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
Here is slightly modified c# sample code
<%@ 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>
这篇关于如何使一个文本文件在内存中,写的东西它,打开记事本,在客户端,并打开文件的呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!