[英]VBSCRIPT Upload File to Server
我正在嘗試制作一個腳本來將任何文件上傳到一個簡單的 html/php 上傳表單。 我找不到任何不使用 ASP 的工作腳本。 這是我擁有的最接近的代碼:(VBS)
Dim strURL
Dim HTTP
Dim dataFile
Dim dataRequest
Dim objStream
strURL = "http://10.0.0.50/~/v_upload/up.php"
Set HTTP = CreateObject("Microsoft.XMLHTTP")
Set objStream = CreateObject("ADODB.Stream")
Set dataFile = objStream.Read
objStream.Type = 2
objStream.Open
objStream.LoadFromFile "http.txt"
Set dataRequest = "dataFile=" & dataFile
HTTP.open "POST", strURL, False
HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTP.setRequestHeader "Content-Length", Len(dataRequest)
WScript.Echo "Now uploading file G:\Http\http.txt"
HTTP.send dataRequest
WScript.Echo HTTP.responseText
Set HTTP = Nothing
這給了我這個錯誤:
9號線
字符 1
錯誤:object關閉時不允許操作
代碼 800A0E78
源 ADODB.Stream
PHP 代碼為:
<?php
if (!isset($_FILES['dataFile']['error']) || is_array($_FILES['dataFile']['error'])) {
switch ($_FILES['dataFile']['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
echo 'Unable to Upload. No file sent.';
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
echo 'Unable to Upload. Exceeded file size limit.';
default:
echo 'Unable to Upload. Unknown errors.';
}
die();
}
$file_path = "http/";
$file_path = $file_path . basename( $_FILES['dataFile']['name']);
if(move_uploaded_file($_FILES['dataFile']['tmp_name'], $file_path)) {
echo "File {$_FILE['dataFile']['name']} uploaded success";
} else{
echo "Unable to upload. Unable to move uploaded file.";
}
?>
請幫忙!
基本上有4個錯誤需要修復:
line 9
刪除set
objStream.Read
到objStream.ReadText
line 9
移至objStream.LoadFromFile
之后line 14
刪除set
完整代碼:
Dim strURL
Dim HTTP
Dim dataFile
Dim dataRequest
Dim objStream
strURL = "http://10.0.0.50/~/v_upload/up.php"
Set HTTP = CreateObject("Microsoft.XMLHTTP")
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Open
objStream.LoadFromFile "http.txt"
dataFile = objStream.ReadText
dataRequest = "dataFile=" & dataFile
HTTP.open "POST", strURL, False
HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTP.setRequestHeader "Content-Length", Len(dataRequest)
WScript.Echo "Now uploading file G:\Http\http.txt"
HTTP.send dataRequest
WScript.Echo HTTP.responseText
Set HTTP = Nothing
這對我不起作用,但我發現了這個: https : //github.com/ArancioGrigio/vbs-php-ImageUpload
它通過將圖像轉換為 base64 並將文本以 2000 個字符的數據包通過 php GET 參數發送到服務器來將圖像傳輸到 php 服務器。 最后,php 服務器將文本轉換回圖像。 我使用 vbs 作為客戶端和 php 作為服務器。 這對於低流量和低重量圖像很有用,否則可能需要幾分鍾時間並且服務器無法再響應。 GET 參數限制為 2048 個字符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.