0

我正在尝试将文件下载并运行到客户端计算机。客户意识到这一点。这是一个动态生成的 ttkgp 文件。我试过使用在我的本地机器上运行良好的 Processs.Start()(首先将文件保存到 C:\ 然后午餐它),但它不能在服务器上运行。这不是我的服务器,而是托管的。他们正试图提供帮助,但到目前为止还没有运气。我看过这段代码:

  public void ProcessRequest(HttpContext context)
  {
   string fileName = context.Request.QueryString["filename"];
   FileInfo fi = new FileInfo(fileName);
   context.Response.ContentType = "application/x-rar-compressed";

   context.Response.AppendHeader("Content-Disposition",
   string.Format("attachment; filename=download{0}", fi.Name));

   context.Response.WriteFile(fileName);
   context.Response.End();

}

但由于我不知道什么是“HttpContext context”,所以我不知道它是否有效。是否需要更改某些服务器权限?或者只是这段代码可以解决问题?

谢谢

更新(24.6.12):我几乎解决了这个问题,我现在只需要知道如何在新选项卡/窗口中打开一个 html 页面并稍后关闭它。完成后,我会将所有过程发回这里,我相信它会帮助其他人。

更新(26.6.12):这是我得到的:目标是从 asp.net webiste 下载一个 TTKGP 文件到本地用户机器并运行它。第 1 步:在服务器 (V) 上生成带有代码隐藏 (c#) 的文件 第 2 步:将文件或其内容复制到用户计算机 (X) 第 3 步:使用 JS 运行文件 (V)

事情是这样的:我可以从服务器上的文本文件复制到用户机器上的文本文件,但不能从 TTKGP 文件复制。这很奇怪,因为这只是文本文件,只是一个不同的扩展。复制文本文件的代码:

enter code here
    function copyremotetxt() // works
{   
// copy the txt file
var fso = new ActiveXObject("Scripting.FileSystemObject");

var newfile = fso.CopyFile("remote.txt", "C:\\Users\\***\\local.txt");
}

也许我可以更改用户机器上的文件类型?

注意 1:我知道这是一个安全问题,该站点仅适用于已知用户,而不是公开的公众 注意 2:我知道有更好的方法来完成任务,但对许多事情都有严格的限制

感谢那些可以提供帮助的人!

4

2 回答 2

2

这段代码可以解决问题。它将提示客户下载文件并将其保存在他决定的位置的计算机上。该文件接下来会发生什么是客户的决定,而不是您的决定。他可能会简单地关闭“另存为”对话框,中断下载,删除文件,......这取决于他。

另一个说明:这段代码非常危险,因为它允许客户端传递他想要的任何文件名作为查询字符串参数并下载它。所以他绝对可以读取服务器上的所有文件,这可能不是你想要发生的事情。

于 2012-06-21T09:02:52.930 回答
0

好的,这需要一种不同的方法。我将尝试使用 JavaScript 读取服务器上的文件,在用户机器中重写它并激活它。任何线索都会很高兴!首先,如何在 JS 中读取文件?我是新手。

于 2012-06-21T11:52:50.293 回答