2

以下は、ファイルをダウンロードするために作成したコードです。次に、クライアントシステムの特定の場所にファイルをダウンロードする必要があります。ユーザーからの入力により、パスを取得します。クライアントシステムを台無しにするのは良くないことは知っていますが、それをしなければなりませんでした

        //setting the content type of response
        response.setContentType("application/"+strFileType);

        response.setHeader("content-disposition","attachment; filename="+strFileName+"."+strFileType);

        //creating a file input stream object
         InputStream input = blob.getBinaryStream();

         //declaring a variable
         int i;
         while((i=input.read())!=-1)
         {
             //writing output
             printWriter.write(i);
         }

         //closing the streams
         input.close();
         printWriter.close();
4

3 に答える 3

4

クライアントシステムを台無しにするのはよくないことだとわかっていますが、そうしなければなりませんでした....

良いニュースは (ユーザーの観点から! ) それができないということです。「しなければならない」場合でも。Web ブラウザーは、ユーザー (サーバー側) がそのようなことを行うのを防ぐために特別に構築されています。

これを回避する唯一の方法は、TRUSTED ブラウザ プラグインまたはアプレット、またはユーザーが自分のマシンに特別にインストールする必要があるものに機能を実装することです。


...ユーザーから取得したパスを使用する場所と、ftpのようにこれをプログラミングしていますが、サーバー側はデータベースです

問題は、ブラウザがこれを正当な目的で行っているかどうかを判断する方法がないことです...または、システム/ユーザーファイルを破壊する試みとして、マルウェアを植え付け、またはユーザーに有害な 可能性があるその他の多くのもの.

あなたに任せるというリスクを冒すつもりはありません。それは良いことです。

于 2012-11-17T05:29:44.763 に答える
1

これには、ブラウザのファイル ダウンロード場所の更新が必要です。[注:これを更新すると、すべてのファイルがそのパスにダウンロードされます]

以下のリンクを参照してください。

Firefox でダウンロード フォルダの宛先を変更するにはどうすればよいですか?

Mac の Safari、Firefox などのブラウザでダウンロード フォルダの場所をプログラムで確認する方法は?

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/6ff178a2-5131-43d4-b4c0-efb4a2112e95

于 2012-11-17T05:25:38.837 に答える