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