2

私は開発にかなり慣れていないので、解決策が見つからない問題があります。とにかく、解決できるかどうかはわかりません..

ユーザーが ftp サーバーからフォルダー全体をダウンロードできるようにする ASP ページを作成したいと考えています。ftp サーバー自体は、asp サイトと同じ物理サーバー上にはありません。問題をさらに複雑にするのは、ブラウザでは動作しないように見える明示的または暗黙的な転送を使用したいということです。

Web ページは、クライアントと ftp サーバーの間の仲介者として機能し、可能な限りユーザー フレンドリーになるように設計されています。例えば。ユーザーはダウンロードを押すだけで、インストールされたローカル クライアントを使用せずに ftp サーバーから自動的にダウンロードされます。

  1. クライアント -> ASP ページ -> ftp サーバー
  2. クライアント <- ftp サーバー

私の問題は、asp ページにクライアント システムでファイルを作成する権限がないことです。ftp に接続してフォルダ内のすべてのファイルをダウンロードしようとしましたが、クライアントのターゲット フォルダにファイルが表示されません。

間違った用語を探しているだけかもしれませんが、フィードバックをいただければ幸いです。

4

3 に答える 3

0

「クライアント」と言うときは、asp.netサーバーを参照していると思います。その場合、Webサイトのアプリプールが実行されているユーザーを確認する必要があります。次に、ユーザーがftpファイルを保存しているフォルダーへの書き込み権限を持っていることを確認する必要があります。

ユーザーはおそらくネットワークサービスです。

于 2013-03-24T01:10:11.653 に答える
0

ASP サイトは、エンド ユーザーのシステムに直接書き込むことができません。Web サイトからファイル システムに直接アクセスできるようにしたいですか?

ファイルを Web サーバーの一時フォルダーにダウンロードし、応答で書き込みを使用して、ユーザーにダウンロードを求めることができます。

これは、ASP.NET でのファイルのダウンロードに関する SO の質問です。

于 2013-03-24T01:21:50.497 に答える
0

質問のコメント ディスカッションから、サーバー側で収集したファイルを ftp サーバーからダウンロードするオプションをユーザーに提供しようとしているようです。

//Connect to your file
FileStream sourceFile = new FileStream(Server.MapPath(@"FileName"), FileMode.Open);
float FileSize= sourceFile.Length;

//Write the file content to a byte Array 
byte[] getContent = new byte[(int)FileSize];
sourceFile.Read(getContent, 0, (int)sourceFile.Length);
sourceFile.Close();

//Build HTTP Response object
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Length", getContent.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.BinaryWrite(getContent);
Response.Flush();
Response.End();

上記のコードが役立つかどうかを確認してください。また、HTTP 応答ファイルの添付ディスカッションも参照してください。

于 2013-03-24T01:34:28.697 に答える