2016-11-22 19 views
0

特にExcel/VBAの場合は、この件に関するいくつかの情報を得たいと思います。ファイルをアップロードして複数フォームデータを送信するVBA POSTリクエスト

ネットワークトラフィックモニタを使用することで、作業中のシステムがマルチパート/フォームデータを送信するPOSTリクエストに依存していることが分かりました。私は境界などのすべての構文をクラックし、成功したアップロードと応答で完全に異なるフィールドのロードを持つフォーム用の文字列構築を複製しました。

私が苦労していることの1つは、アップロードされたファイルを含める方法です。だから私はいくつかの掘削を行なったし、全体を変換する前に、バイナリにファイルを変換した文字列でそれらを含めてのいくつかの例を見つけ

-----------------------------7d01ecf406a6 
Content-Disposition: form-data; name="Reload" 

False 
-----------------------------7d01ecf406a6 
Content-Disposition: form-data; name="ReferenceFile001"; filename="word.doc" 
Content-Type: msoffice/word 

<Binary File Not Shown> 
---------------------------7d01ecf406a6 'After a file entry boundary not prefixed with 2 "-" 
Content-Disposition: form-data; name="SomethingElse" 

SomeRandomStuff 
-----------------------------7d01ecf406a6-- 

:私は監視トラフィックにリクエストボディにこれを見ると、それは次のようになります'strConv(theString、vbFromUnicode)を使用しているもの

しかし、私はこの方法を使ってファイルを正常にアップロードしていません。私はいろいろなことを試してきましたが、さまざまなサーバーの応答エラーがありましたが、私はエラーレスポンスを得られません...しかし、アップロードだけではうまくいかなかったのです。

私が現在使用しているコードは、 Here!のようなもので、以下のバイナリ変換ビットが含まれています。 は私もレコードセットを使用してチャンクを追加し、このいずれかを試してみましたが、守ってきた取得エラー

hereは基本的に私はそこに誰もがエクセル/ VBAで、この成功したかどうかを知りたい - あるそのうちのいくつかは、様々なフィールドを持つマルチパートフォームを、ファイルのアップロード。ファイルをバイナリに変換してテキスト文字列に含める簡単な方法はありますか?以下のコードに関する私の主な質問は、通常のテキスト文字列を持っていて、変換されたバイナリファイルをその途中に貼り付けてから送信することです。それは文字列の真ん中にこのように変換されたファイルを貼り付けるのにも意味がありますか?テキストファイルに文字列を表示しようとすると、テキストファイルに "文字列"を書き込もうとするとエラーが発生するため、これを尋ねます。

私はこれが理にかなっていると思いますが、何か寄与していただければ幸いです。

答えて

1

忘れるGetFile機能!サーバーに送信されるデータは、文字列ではなくByte()配列でなければならないからです。 Jscriptの最後のコードをthis linkに表示し、簡単にVBAに変換します。あなたがファイルをアップロードすることができない場合は、私はあなたのリンクを共有します。私はこのシステムが動作するように得ることができたので、

+0

こんにちは、昨日私は正常に動作することができましたが、GetFileと文字列の連結の後、私はPOSTリクエストで送信する直前に 'strConv'と 'vbFromUnicode'を使ってロット全体を変換しなければなりませんでした。どのような安堵!編集:あなたが投稿したリンクをチェックして、それが本質的に同じことを確認したので、私はあなたの答えを受け入れました。 – jamheadart

+0

jamheadart:strConv関数はUTF-8エンコーディングをサポートしていません! – doveandrose

+0

あなたの投稿を[編集]して、コメントにある情報を投稿に追加してください。そうした後、コメントは廃止されたものとしてフラグを立てる。 –

0

私自身の答え、:

様々なストリングスとGETFILE(S)の連結した後、最後のステップは、POSTリクエストで送信する前にちょうど下に使用することでした

strConv(sendRequest, vbFromUnicode) 

とにかくこれを数回試したことがありますが、おそらく私の文字列のビルディングにはVbCrLfなどがありませんでした。とにかく、それは仕事をしています!わーい!

関連する問題