2

Web サイトを開発していますが、ユーザーが Web ページを使用してファイルをサーバーにアップロードできるようにしたいと考えています。

サーバー側は .NET ですが、ASP.NET ではありません。つまり、ASP.NET を使用する代わりに自分で HTML コードを生成し、GET 文字列と POST ストリームを直接操作しています。ボンネットの下で何が起こっているかを学ぶのは良い練習です:D、特に最近ではすべてのフレームワークがあります。

私はこれに関する情報を見つけようとしてきましたが、いくつかのアプローチを見つけました。そのうちのいくつかはjavascript(当面は避けたいもの)と多くの既製のコントロールです。私が望むのは、それを自分で行うことです。素敵で気の利いた、十分に証明された ASP.NET コントロールが存在するかどうかは気にしません。

乾杯!

4

4 に答える 4

4

HTML では、入力が type="file" で、フォームの enctype 属性がデフォルトの "application/x-www-form-urlencoded" ではなく "multipart/form-data" に設定されたフォームが必要です。

Multipart/form-data はRFC 2388で定義されており、非常に単純ですが、これまでこの実験で解析してきた application/x-www-form-urlencoded とは異なる動作をします。RFC には、HttpRequest.Files プロパティが ASP.NET でどのように機能するかを再現するために知っておく必要があるすべての情報が記載されています。

これを拡張して、POST と PUT の両方を使用して、ページ内の XMLHttpRequest または .NET クライアント アプリケーション内の HttpWebRequest からストリームを送信してみてください (PUT が通過できるように IIS 設定を変更する必要がある場合があります)。ここでの実験に加えて、すべてのツールキットを使用している場合でも実際に適用できる知識がカバーされます。もう 1 つの拡張は、フレームワークの助けを借りずにRFC2617で両方のスキームの両側を実装しようとすることです (これのサーバー側が本当に役立つ場合があります)。

RFC 2616を読んで学べることをバックアップするための実際の経験が得られるはずです(ただし、Web 関係の作業を行っている人にとっては、これを熟知しておくことが絶対に不可欠です。読むことで、実験で説明されていないいくつかのケースがカバーされるからです)。触れて、結果で奇妙に思われるものはすべて説明してください)。

于 2010-08-10T11:44:40.027 に答える
3

これには必要なものが含まれているはずだと思います。

<input type="file">基本的に、フォームのエンコーディングを multipart/form-data に設定するには とが必要です。

于 2010-08-10T11:33:11.277 に答える
2
<input type="file" name="somename" size="n"> 

あなたはそれを形にして、hasta la vista baby !

于 2010-08-10T11:33:22.443 に答える
1

純粋な HTML を使用してファイルをアップロードすることはできません。サーバー側でアップロードされたファイルを処理する必要があります。

アップロードされたファイルが「ボンネットの下で」どのように機能するかを知りたい場合は、生の POST データからアップロードされたファイルを解析できます ( ASP での方法の例については、こちらを参照してください)。ただし、何らかのサーバー必要になります。それを行うための副言語。

于 2010-08-10T11:33:28.340 に答える