我有一个FTP服务器,但不知道从PHP表单上传的命令。我需要一个使用WinSCP上传的命令。到目前为止我的代码如下:
<html>
<body>
<?php
if(isset($_FILES["uploaded"]))
{
print_r($_FILES);
if(move_uploaded_file($_FILES["uploaded"]["tmp_name"],"<root>/domains/sigaindia.com/public_html/reymend/".$_FILES["uploaded"]["name"]))
echo "FILE UPLOADED!";
}
else
{
print "<form enctype='multipart/form-data' action='fup1.php' method='POST'>";
print "File:<input name='uploaded' type='file'/><input type='submit' value='Upload'/>";
print "</form>";
}
?>
</body>
</html>
答案 0 :(得分:1)
我有一个FTP服务器,但不知道从PHP表单上传的命令。我需要一个使用WinSCP上传的命令。到目前为止我的代码如下:
如果你在谈论PHP和表单而不是HTTP - HTTP不是FTP,反之亦然。
WinSCP是一个SSH客户端。 SSH是与HTTP不同的协议。 SSH是与FTP不同的协议。
如果您希望PHP脚本将上传到网络服务器的文件传输到FTP服务器,请尝试以下操作:
foreach ($_FILES as $f) {
if (file_exists($f['tmp_name'])) {
$dest = 'ftp://' . $username . ':' . $password .
'@' . $ftpserver . $ftp_path;
file_put_contents($f['tmp_name'], $dest);
}
}
答案 1 :(得分:1)
$host = "ftp.example.com";
$user = "anonymous";
$pass = "";
// You get this from the form, so you don't need to do move_uploaded_file()
$fname = "/public_html/new_file.txt";
$fcont = "content";
function ftp_writeFile($ftp, $new_file, $content, $debug=false) {
extract((array)pathinfo($new_file));
if (!@ftp_chdir($ftp, $dirname)) {
return false;
}
$temp = tmpfile();
fwrite($temp, $fcont);
rewind($temp);
$res = @ftp_fput($ftp, $basename, $temp, FTP_BINARY);
if ($debug) echo "a- '$new_file'".(($res)?'':" [error]")."<br/>";
fclose($temp);
return $res;
}
$ftp = ftp_connect($host);
if (!$ftp) echo "Could not connect to '$host'<br/>";
if ($ftp && @ftp_login($ftp, $username, $password)) {
ftp_writeFile($ftp, $fname, $fcont, true);
} else {
echo "Unable to login as '$username:".str_repeat('*', strlen($password))."'<br/>";
}
ftp_close($ftp);