如何使一个文本文件在内存中,写的东西它,打开记事本,在客户端,并打开文件的呢? [英] How Make A Text File In Memory And Write Something On It And Open NotePad In Client And Open That File In It?

查看:98
本文介绍了如何使一个文本文件在内存中,写的东西它,打开记事本,在客户端,并打开文件的呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能让一个文本文件在内存(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆