- - PR -
クライアントアプリからのPOSTデータ(バイナリデータ)の受け取り方
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-06-21 16:10
クライアントアプリ(delphiで作成)からサーバーにPOSTした際に
クライアントにあるファイルもPOSTデータ(バイナリデータ)の一部としてに送り、サーバー側でそのPOSTデータを受け取りその中からバイナリーデータを読み取り、ファイルとして作成するという処理を行いたいのですが、ASP.NET(VB.NET)で可能でしょうか? 以前C言語でmultipart/form-dataの要求を受け取り、その受け取ったデータの中からバウンダリー文字で囲まれたデータ箇所を取得してファイルに保存するというようなものを作ったので、そのイメージで出来れば(もっと簡単に出来るのかも知れませんが) 同じような事は出来るのでしょうか? fileuplodとしてサーバー側で設定したフォルダにファイルが作成されるのではなくPOSTデータとして受け取り、それを自分でファイルとして保存したいのです(クライアントからのファイルの取得としては正しい方法ではないのかも知れませんが) どなたかご存知のかたがいらっしゃいましたら教えて頂けないでしょうか? |
|
投稿日時: 2005-06-21 17:01
試していませんが、
HttpRequest.Filesプロパティでいけそうじゃないですかね。 HttpRequestのインスタンスは、PageのRequestプロパティで取得できます。 |
|
投稿日時: 2005-06-21 17:09
こんにちは。
以下の技術情報が参考になるかもしれません。 323245 Visual Basic .NET を使用して ASP.NET の Web サーバーにファイルをアップロードする方法 http://support.microsoft.com/default.aspx?scid=kb;ja;323245 _________________ ASP/ASP.NETだいすき。 ASP++ by Moo http://moo-asp.net/ 日記は ほぼ毎日更新中 http://d.hatena.ne.jp/aspx/ |
|
投稿日時: 2005-06-21 19:25
一郎さん、Mooさん 情報ありがとうございます。
一郎さん> >HttpRequest.Filesプロパティでいけそうじゃないですかね。 >HttpRequestのインスタンスは、PageのRequestプロパティで取得できます。 済みません、具体的にはどうやって取得するのでしょうか? テストとして クライアントアプリではなく(まだ完成していないので) テスト用のhtmlを作成してその中にfileuploadのタグを書いて action先をaspxにしたところ Dim hprq As HttpRequest = Page.Request Response.Write(Rq.Files) 「C:\****\****.txt.Web.HttpFileCollection」と表示されました。 ****の部分はHTMLのfileタグで指定したファイルのパスとファイル名です。 ファイルの中身を取得するにはここからどうすればいいのでしょうか・・・ Mooさん> 教えていただいたリンク先を見たのですが、 「File1.PostedFile.SaveAs(SaveLocation)」この File1というのはfileタグをWebフォームで作成した際に使用できそうな記述に感じましたが、クライアントアプリからのPOSTのフォームの場合でも使用できるのでしょうか? 質問の仕方がおかしいかも知れませんが 何か情報があれば教えていただければと思います。 |
|
投稿日時: 2005-06-21 22:03
使い方がわからないときはリファレンスを見ましょう。
HttpRequest.FilesプロパティはHttpFileCollection という アップロードされたファイルのコレクションを取得します。 個々のファイルは、ItemプロパティでHttpPostedFile というものが取得できます。そのクラスのHttpPostedFile.InputStream プロパティがファイルの内容を取得するためのStreamになってます。 |
|
投稿日時: 2005-06-22 11:34
hさん 情報ありがとうございます。
InputStreamを使用して読み込むところまではまだ出来ていませんが、 とりあえずuploadされてきたファイル自体を取得する事が出来ました Dim Rq As HttpRequest = Page.Request Dim upfile As HttpPostedFile = Rq.Files.Item(0) ※Rq.Files.Item()にstringを渡す方法では、何の文字列を渡してよいのか 分かりませんでしたが upfile.SaveAs("C:\Inetpub\wwwroot\test\data\NNN.TXT") ありがとうございました。 |
1
