ASPでFormを使ってアップロード
最終更新日時:2014-03-28 00:00:00
ASP
ASP
ASP でいわゆる、
これには、そもそも http リクエストを ASP 内で生成する必要があるのですが、それについては、他のサイトのコンテンツを ASP で取得するを参照。
ここでは、他のサイトのコンテンツを ASP で取得する のうちの MSXML2 を使用するパターンでアップロードする方法を紹介します。
アップロードのみを実装
とにかくファイルをアップロードしたいというだけの目的であれば、それほど難しくありません。
以下のように、Content-Disposition と Content-Type を適切に指定しつつ、、
Content-Disposition: form-data; name="test.csv"; filename="test.csv" Content-Type: text/csv
ファイル本体を send すればOKです。
ファイル本体が画像等のバイナリデータだったりするともう少しケアが必要ですが、基本原理は同様です。
このパターンは、次に紹介するパラメータとアップロードの両方を行う場合のサブセットとなりますので、具体的なコードは次を参考にしてください。
パラメータおよびアップロード
いわゆるマルチパートな POST 通信を行う必要があります。
マルチパートな POST 通信の仕様を前提に実装しますので、その辺りについては、Formを使ったアップロードを参照。
FORMDATA_BOUNDARY には、それぞれのパートを区切るための文字列が入りますので、他に現れない文字列を指定する必要があります。
Dim oXmlHttp, html, body, FORMDATA_BOUNDARY Set oXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") FORMDATA_BOUNDARY = "testdM57cFL7Fc" oXmlHttp.open "POST", "http://xxx.xxx.xxx/xxx, False Call oXmlHttp.setRequestHeader("Content-Type", "multipart/form-data; boundary=" & FORMDATA_BOUNDARY) body = "--" & FORMDATA_BOUNDARY & vbLf & _ "Content-Disposition: form-data; name=""login_id""" & vbLf & _ vbLf & _ "login_id_str" & vbLf & _ "--" & FORMDATA_BOUNDARY & vbLf & _ "Content-Disposition: form-data; name=""password""" & vbLf & _ vbLf & _ "password_str" & vbLf & _ "--" & FORMDATA_BOUNDARY & vbLf & _ "Content-Disposition: form-data; name=""csvfilie""; filename=""test.csv"" & vbLf & _ "Content-Type: text/csv" & vbLf & _ vbLf & _ CSVFILE "--" & FORMDATA_BOUNDARY & "--" & vbLf Call oXmlHttp.send(body) html = oXmlHttp.responseText