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

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

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

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

PDF

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

Q&A

2回答

7391閲覧

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

first_php

総合スコア20

VBA

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

PDF

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

0グッド

1クリップ

投稿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がサーバー上に作成はされるのですが、
無駄なパラメーターを付与してしまっているので
破損させないようにしたいです。

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

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

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

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

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

m.ts10806

2018/08/01 11:33

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

2018/08/18 10:53

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

回答2

0

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

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

投稿2018/08/20 06:48

編集2018/08/20 08:08
sysjojo

総合スコア325

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

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

0

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

投稿2018/08/03 16:26

thom.jp

総合スコア686

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問