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

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

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

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

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Q&A

受付中

VBAでローカル上にあるpdfファイルをサーバーに送信する方法

first_php
first_php

総合スコア20

VBA

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

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

2回答

0グッド

1クリップ

5738閲覧

投稿2018/08/01 11:17

編集2018/08/01 11:56

こんばんは

VBAでhttp通信を用いて
ローカル上にあるPDFファイルを
サーバーにアップロードするところまでは行けたのですが

落ちてたソースコードを使っており、
意味も分からず利用している為、
元のPDFファイルに無駄な情報が付与されてしまったようで、
破損ファイル扱いされてしまいました。

VBA

1'送信側--------------------------------------------------------- 2 Sub Sample() 3 '--------------------------------------------------------- 4 Const UserID = "Mook" 5 Const PassWD = "OpenSesami" 6 Const CabinetID = 1 7 FileUpload "C:\Users\PC1\Desktop\AAAA.pdf", CabinetID, UserID, PassWD 8 End Sub 9 '--------------------------------------------------------- 10 Sub FileUpload(filePath, CabID, UserID, PassWD) 11 '--------------------------------------------------------- 12 Const Server = "11.222.333.44/test.php" 13 Dim strBoundary: strBoundary = DateDiff("s", "1970/1/1 0:00:00", DateAdd("h", -9, Now)) 14 Set objHTTP = CreateObject("MSXML2.XMLHTTP") 15 Set Stream = CreateObject("ADODB.Stream") 16 Stream.Open 17 Stream.Type = 1 18 Stream.LoadFromFile filePath 19 objHTTP.Open "POST", "http://" & Server, False, UserID, PassWD 20 objHTTP.SetRequestHeader "Content-Type", "multipart/form-data; boundary=""" & strBoundary & """" 21 Dim str 22 str = "--" & strBoundary & vbCrLf 23 str = str & "Content-Disposition: form-data; name=""fdrParentSid""" & vbCrLf & vbCrLf 24 str = str & CabID & vbCrLf 25 str = str & "--" & strBoundary & vbCrLf 26 str = str & "Content-Disposition: form-data; name=""uploadFile""; filename=""" & Dir(filePath) & """" & vbCrLf 27 str = str & "Content-Type: text/plain" & vbCrLf & vbCrLf 28 str = str & Stream.Read() & vbCrLf 29 str = str & "--" & strBoundary & "--" 30 objHTTP.Send str 31 MsgBox objHTTP.responseText 32 End Sub 33

PHP

1if ( $_FILES['uploadFile']['error'] == UPLOAD_ERR_OK ) 2{ 3 4 $upload_file = "../test/" . $_FILES["uploadFile"]["name"] ; 5 6 if ( move_uploaded_file( $_FILES["uploadFile"]['tmp_name'], $upload_file ) ) 7 { 8 // Read and write for owner, read for everybody 9 chmod($upload_file, 0644); 10 } 11} 12

上記、プログラムをたたいて
pdfがサーバー上に作成はされるのですが、
無駄なパラメーターを付与してしまっているので
破損させないようにしたいです。

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

m.ts10806

2018/08/01 11:33

PHPは単体で実行確認されたのでしょうか。VBAから実行されているのでしょうか。前者であれば確認の仕方が間違っています。「PHP」をタグに追加し、PHPのコード全体も記載してください。
shinobu_osaka

2018/08/18 10:53

元ファイルとアップロードされたファイルのバイナリの比較も行って結果を教えてください。

回答2

1

落ちてたソースコードを使っており、

どこから拾ったのか、を補足されるとよいかと。
ここを参考にされたのであれば、サンプルはテキストファイルだから、PDFのときはそのままだと上手く行かないかも。
PDFであればこちらの方が近そうな感じがします。

投稿2018/08/20 06:48

編集2018/08/20 08:08
sysjojo

総合スコア323

s_george👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

1

私も良く分からないのでトライアルになりますが、PDFだったらContent-Typeはapplication/pdfになるのでは。

投稿2018/08/03 16:26

thom.jp

総合スコア686

ExcelVBAer👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

VBA

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

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。