- PR -

HTTPファイルアップロード(WebClient.UploadFile)をC++で作成したい

1
投稿者投稿内容
PAPA
会議室デビュー日: 2006/11/12
投稿数: 1
投稿日時: 2006-11-17 15:22
HTTPもこちらも初心者です。
参考記事:
[ASP.NET]アプリケーションからASP.NETサイトにファイルをアップロードするには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/323uploadfile/uploadfile.html

FTPが実装できないサーバへHTTPでファイルアップロードをするアプリを作成
しているのですが、うまく動作しません。
アプリはアイコンクリックで起動、VBのWebClient.UploadFileをC++で作成したい
ということです。

色々なサイトや本などでサーバー上にどうにかファイルは生成されるようになった
のですが、ファイルサイズが0になってしまいます。
HttpConnection::SendRequestに渡している情報は
ヘッダ
"Content-Length:2196
Content-type:multipart/form-data; boundary=---------------------8c8d85ba0acb8e0"
オプション
"-----------------------8c8d85ba0acb8e0
Content-Disposition:form-data;
name="file";
filename="text.txt"

-----------------------8c8d85ba0acb8e0
Content-Type:application/octet-stream
Content-Transfer-Encoding: base64

ファイル内容(Base64Encodeテキスト)

-----------------------8c8d85ba0acb8e0-- "
です。
サーバ側は参考記事のとおり、ASPで受け取ったファイルを固定のフォルダに
書き込むように作成してあります。(HttpPostedFile.SaveAs)

また、参考記事にあるVBベースでのアップロード処理を作成して実行してみました。
すると正常にアップロードでき、作成中のアプリと何が違うのかをサーバ側で
確認してみると変数(HttpPostedFile)の値が
・VBベース
 ContentLength 2196   Integer
 ContentType  "application/octet-stream" String
 FileName    "text.txt" String
・作成中アプリ
 ContentLength -2     Integer
 ContentType  Nothing   String
 FileName    "text.txt" String
と異なり、更にRequest オブジェクト内容を見ますと
・VBベース
 ContentLength 2386  Integer
・作成中アプリ
 ContentLength 2422  Integer
でした。

根本的に処理が違う、足りない、ヘッダ、オプションの編集が違うのか
もしお分かりの方がおりましたら、御指摘、御教授願えればと思います。
長くなりましたが、宜しくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)