我正在尝试将.txt文件上传到服务器,客户端的vbs和服务器端的php。这就是我所做的,当我从某个地方复制它时,vbs部分很乱,修改了一下因为我不知道该怎么做。对不起,我是vbs的新手。
Dim sender
Dim strURL
Dim HTTP
Dim dataFile
Dim dataRequest
Dim objStream
strURL = "http://some-url/cgi-bin/upload.php"
Set HTTP = CreateObject("Microsoft.XMLHTTP")
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Open
objStream.LoadFromFile "test.txt"
dataFile = objStream.ReadText
sender = "testing"
dataRequest = "sender=" & sender & "&dat=" & dataFile
WScript.Echo "packet: " & dataRequest
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"
HTTP.send dataRequest
WScript.Echo HTTP.responseText
Set HTTP = Nothing
这里我发送两个东西给php文件。一个是$ sender,一个上传者的字符串标识符。二,txt文件。
例如,。假设一个人发送了两个数据“myperson”和hello.txt
php应该首先从root创建一个目录,/ uploads / myperson /
然后在那里上传txt。 /uploads/myperson/hello.txt
php位于/cgi-bin/upload.php
这是.php
#!/usr/local/bin/php
<?php
echo "executed<br>";
$sender = $_POST['sender'];
echo "received sender=$sender";
$root = "../";
$target_dir = $root . "uploads/" . $sender . "/";
$target_file = $target_dir . basename($_FILES["dat"]["name"]);
mkdir($target_dir, 0777, true) or die("cannot create directory");
move_uploaded_file($_FILES["dat"]["tmp_name"], $target_file) or die("cannot move file");
?>
php可以接收$ sender,但不知何故无法根据$ sender创建新目录。
我尝试删除mkdir行,并将txt上传到当前目录,但是它回复“无法移动文件”,也许文件永远不会收到?
我还注意到vbs将我的txt文件读取为unicode,尽管我的txt文件是ANSI。
任何帮助表示感谢。