Загрузка слова документа через http

Я подумал, что было бы очень удобно, если бы я мог загружать текстовые документы на свой веб-сайт из Word, используя чистый VBA, без плагинов и т. Д. И т. Д.

В качестве отправной точки я хотел бы загрузить файл в мой корневой каталог c: \ reg.txt, и как только у меня получится, я хотел бы, чтобы мой макрос сохранил где-нибудь текущий документ, а затем загрузил его.

Пока что мой код VBA такой:

Sub UploadFile()
'
' UploadFile Macro
'
'
strURL = "http://www.mywebsite.com/files/upload.php"File = "c:\reg.txt"
Set HTTP = CreateObject("Microsoft.XMLHTTP")

Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 1
objStream.Open
objStream.LoadFromFile (File)

HTTP.Open "POST", strURL, False
MsgBox "Now uploading file " & File

HTTP.setRequestHeader "Content-Type", "multipart/form-data;"HTTP.send objStream.Read
MsgBox (HTTP.responseText)
MsgBox "Uploading complete for file " & File

End Sub

И мой PHP-скрипт такой:

<?php

$uploaddir = '/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo $uploadfile;
echo "<p>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}

echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";

?>

Я осознаю, что, скорее всего, будет много ошибок как на стороне клиента, так и на стороне сервера, поскольку я пытаюсь адаптировать различные примеры, которые я нашел, но я был бы очень благодарен за любые указатели!

1

Решение

Хорошие новости — я смог понять это в конце, и я надеюсь, что этот код пригодится кому-то еще! В конце концов я решил написать свой код на стороне сервера в asp, так как я не знаю, что я делаю с php!

Sub UploadFile()
'
' UploadFile Macro
'
'
Dim objStream, objHttp
Dim sUrl, sFile, sName

ActiveDocument.Save
FileName = ActiveDocument.Name
Application.Documents.Add FileName
ActiveDocument.SaveAs "c:\temp\" & FileName
ActiveDocument.Close

sFile = "c:\temp\" & ActiveDocument.Name
UUID = "xxxx"FUID = "yyyy"sName = Right(sFile, Len(sFile) - InStrRev(sFile, "\"))

sUrl = "http://www.mywebsite.com/test.asp?File=" & sName & "&User=Ed&UUID=" & UUID & "&FUID=" & FUID

Set objStream = CreateObject("ADODB.Stream")
objStream.Mode = 3
objStream.Type = 1
objStream.Open
objStream.LoadFromFile (sFile)

If Err = 0 Then
MsgBox "Uploading ... please wait"End If

Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
objHttp.Open "POST", sUrl, False
objHttp.SetRequestHeader "Content-Length", objStream.Size
objHttp.Send objStream.Read(objStream.Size)

If Err = 0 Then
MsgBox objHttp.responseText
Else
MsgBox "Upload Error!" & vbCrLf & Err.Description
End If

objStream.Close
Set objStream = Nothing
Set objHttp = Nothing

End Sub
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]