質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Q&A

解決済

2回答

8563閲覧

VBAでmultipart/form-dataでのファイル送信について

kashim

総合スコア38

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

0グッド

0クリップ

投稿2018/01/23 07:49

編集2018/01/23 08:17

【行いたい動作】
VBAでzipファイルをサーバーにPOSTする

【現状試していること】
VBAでテキストは、POST出来たので
multipart/form-data形式に変更を試している。

zipファイルをstreamで読み込んで、
multipart/form-data形式で送信するためには、
どのように指定をすればよいでしょうか。

VBA

1'データ送信 2Function SendJsonData(url As String, sendData As String) As String 3 Dim xmlHttp As Object 4 Dim strRes As String 5 Set xmlHttp = CreateObject("MSXML2.XMLHTTP") 6 7 ' zipファイル名取得 8 ZipFileName = CreateZip(userName, row, sendData) 9 10 ' リクエストパラメタ用の領域を生成 11 Dim Stream As Object 12 Set Stream = CreateObject("ADODB.Stream") 13 Stream.Open 14 15 ' Streamのオープン 16 Stream.Type = 1 ' 17 Stream.LoadFromFile = ZipFileName 18 19On Error GoTo ErrorLog 20 With xmlHttp 21 .Open "POST", url, False 22 .setRequestHeader "Content-Type", "multipart/form-data;" 23 .Send (tempParamStream.Read(Stream.Size)) 24 strRes = .ResponseText 25 End With 26 27 '結果を受け取る 28 SendJsonData = strRes 29 30 '結果を表示 31 Debug.Print (strRes) 32 Exit Function 33 34' エラーを検知した場合 35ErrorLog: 36 SendJsonData = "インターネットに接続されていません" 37End Function

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

VBAではなくWSH(JScript)ですが、自分の製造しているスクリプトでは以下のコードで、ADODB.Stream、MSXML2.XMLHTTPを利用してzipファイルをサーバに送信することに成功しています。
参考にしてください。
(webdavにファイルをアップロードするコードなのでPOSTではなくPUTで送信してますが)

javascript

1var put = function(localPath, serverPath) { 2 var stream; 3 stream = new ActiveXObject("ADODB.Stream"); 4 stream.Open(); 5 stream.type = 1; // adTypeBinary 6 stream.LoadFromFile(localPath); 7 send("PUT", serverPath, stream); 8 stream.Close(); 9}; 10 11var send = function(method, path, data) { 12 var xmlHttp; 13 xmlHttp = new ActiveXObject("MSXML2.XMLHTTP"); 14 xmlHttp.open(method, encodeURI(path), 0, USER, PASS); 15 xmlHttp.send(data); 16};

投稿2018/01/23 09:09

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

すみません、解決いたしました。

投稿2018/01/23 08:53

kashim

総合スコア38

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問