掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
multipart/form-data形式の取得について (ID:15567)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Webブラウザからファイルを選択し、ファイルの中身をブラウザに表示するプログラムを書いています。環境は、OS:WindowsXP IIS:5.0 Delphi:5.0ent です。宜しくお願いします。 ブラウザから下記のような[multipart/form-data]形式でPOSTしたファイルのContent-Typeを取得しようとしています。 -----------------------------31363577721170 Content-Disposition: form-data; name="get_file"; filename="!HTM.TXT" Content-Type: appication/octet-stream ファイルの中身 -----------------------------31363577721170 今回の場合は、appication/octet-stream を取得したいのですが、 POS関数を使用すれば開始文字列は分かるのですが、終わりを判別することができません。あまりにレベルが低いのか、参考となるソースが見つけられませんでした。この問題を解決しないことには、ファイルの中身も取得できないと考えます。下記が現状のプログラムソースです。 このソースだとstrContentTypeには appication/octet-streamだけでなく、それ以降の文字列も入ってきてしまいます。なにか良い解決策はないでしょうか。それとも通常はこのような取得の仕方はしないのでしょうか。ご教授いただければと思います。宜しくお願いします。 var buf , strContentType : string ; intTypeStart , intContentStart , intContentEnd : integer ; i : integer ; begin // multipart/form-data形式データをbufに格納 buf := Request.Content ; intContentEnd := Length(buf) ; if Pos( 'Content-Type:' , buf ) > 0 then begin // Content-Typeの開始文字数を取得 intTypeStart := Pos( 'Content-Type:' , buf ) + 14 ; for i := intTypeStart to intContentEnd do begin strContentType := strContentType + buf[i] ; if buf[ i ] = ' ' then // ← ここの記述が問題 break ; end ; end ; end ;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.