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コンテキスト」が何であるかわからないので、それが機能するかどうかはわかりません。一部のサーバー特権を変更する必要がありますか? または単にこのコードでうまくいくでしょうか?

ありがとうございました

更新 (24.6.12): 問題はほぼ解決しました。今必要なのは、新しいタブ/ウィンドウで HTML ページを開き、2 秒後に閉じる方法を知ることだけです。完了したら、すべてのプロセスをここに投稿します。他の人に役立つと確信しています。

更新 (26.6.12): これが私が得たものです: 目標は、TTKGP ファイルを asp.net webiste からローカル ユーザー マシンにダウンロードして実行することです。ステップ 1: サーバー上で分離コード (c#) を使用してファイルを生成する (V) ステップ 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: これはセキュリティ上の問題であることは承知しています。このサイトは既知のユーザー向けであり、一般公開されているわけではありません。

どうやって助けてくれる人たちに感謝します!!

4

2 に答える 2

2

このコードはトリックを行います。クライアントは、自分のコンピューターの決定した場所にファイルをダウンロードして保存するように求められます。このファイルで次に何が起こるかは、あなたではなくクライアントの決定です。彼は単に [名前を付けて保存] ダイアログを閉じたり、ダウンロードを中断したり、ファイルを削除したりするかもしれません... それは彼次第です。

別の注意点: このコードは、クライアントが任意のファイル名をクエリ文字列パラメーターとして渡してダウンロードできるため、非常に危険です。したがって、彼はサーバー上のすべてのファイルを完全に読み取ることができますが、これはおそらくあなたが望んでいることではありません.

于 2012-06-21T09:02:52.930 に答える
0

わかりました、これには別のアプローチが必要です。JavaScriptを使用して、サーバー上のファイルを読み取り、ユーザーマシンで書き換えて、アクティブ化してみます。手がかりはありがたいです!まず、JSでファイルを読み取る方法を教えてください。初めてです。

于 2012-06-21T11:52:50.293 に答える