以下のように参照して下さい。 コンソールアプリケーションです。
Imports MSXML2 Imports System.IO Module Module1 Sub Main() ' **************************** ' http 通信用のオブジェクトを作成 ' **************************** Dim ServerXML As New ServerXMLHTTP60() ' **************************** ' 呼び出す URL を設定 ' **************************** Dim URL As String = "http://yourdomain/put/put.php" ' **************************** ' POST する為に開く ' **************************** ServerXML.open("POST", URL, False) ' **************************** ' タイムアウトの設定 ' **************************** Dim lResolve As Integer = 60 * 1000 Dim lConnect As Integer = 60 * 1000 Dim lSend As Integer = 60 * 1000 Dim lReceive As Integer = 60 * 1000 ServerXML.setTimeouts(lResolve, lConnect, lSend, lReceive) ' **************************** ' ファイルを読み込む為のオブジェクト ' **************************** Dim fs As New FileStream( _ "C:\user\web\web\put\winofsql.png", _ FileMode.Open, FileAccess.Read) ' **************************** 'ファイルを読み込むバイト型配列 ' **************************** Dim bs(fs.Length - 1) As Byte 'ファイルの内容をすべて読み込む fs.Read(bs, 0, bs.Length) '閉じる fs.Close() ' **************************** ' 送信するデータの長さをヘッダにセット ' **************************** ServerXML.setRequestHeader("Content-Length", bs.Length) ' 送信 ServerXML.send(bs) ' **************************** ' 結果の表示 ' **************************** Console.WriteLine(ServerXML.responseText) Console.ReadLine() End Sub End Module
本来は、.vbs または .js を拡張子として持つスクリプトから実行するものです。 VBscript(または JScript) で簡単にバイナリファイルをアップロードする 参照した Imports MSXML2 によって、Framework からの処理が可能になっています。PHP 側は、スクリプトで利用した PHP と同じもので、バイト配列を直接 POST して PHP では以下のようにして受け取ります
<? session_start(); $id = session_id(); $fp = fopen( "php://input", "r" ); $wfp = fopen( "image/$id.png", "w" ); while( $ret = fread( $fp, 4096 ) ) { fwrite( $wfp, $ret ); } fclose($wfp); fclose($fp); print $id . ".png\n"; ?> で画像が保存されました
この PHP では http ヘッダを指定していませんので、php ソースのキャラクタセットは UTF-8N にする必要があります。他のキャラクタセットで php のソースコードを記述する必要がある場合は、http ヘッダで Content-Type の Charset を明示して下さい。 関連する記事 VB.net : COMの Msxml2.ServerXMLHTTP を使用して http 通信を行う
|
【VB.NET : 通信の最新記事】
- VB.net : TKFP.DLL 1.4.3 を使って FTPS でファイル(フォルダ)の一覧を取得する
- VB.net : COMの Msxml2.ServerXMLHTTP を使用して Google のURL短縮サービスを使用する( JSON )
- VB.net : COMの Msxml2.ServerXMLHTTP を使用して URL短縮サービス[bit.ly] を使用する( XML と TEXT )
- VB.net : COMの Msxml2.ServerXMLHTTP を使用して URL短縮サービス[p.tl] を使用する( JSON )
- VB.net : COMの Msxml2.ServerXMLHTTP を使用して WEBアプリにデータを POST する
- VB.net : COMの Msxml2.ServerXMLHTTP を使用して http 通信を行う
- VB.net : IPアドレスを IPv4 と IPv6 に区別して取得する
- Json.NET を使用して JSON 文字列を VB.net で使用する( 逆シリアライズ )
- VB.net : クライアントが送ったヘッダを表示するだけの HTTPサーバーU
- VB.net : クライアントが送ったヘッダを表示するだけの HTTPサーバー( TcpListener )
- VB.NET : TKMP.DLL でメール送信