0

我正在尝试创造一个我想到的想法。我想创建一个页面,您可以在其中以 HTML 形式编写您的 FTP 服务器、用户名、密码、文件夹,然后从下拉菜单中选择一个选项,然后它将某些文件上传到该文件夹​​,目前我遇到了一些问题 [也许是因为我从来没有完成学习 PHP,我只是不能坐在电脑前学习一些东西,我知道为什么] 我确实知道一些基础,我阅读了 PHP 纪录片。

我当前的代码:[HTML]

<form name="ftpupload" action="" method="post">
Server: <input type="text" name="server" ><br>
Username: <input type="text" name="user"><br>
Password: <input type="password" name="pass"><br>
Folder: <input type="folder" name="folder"><br>
System: <select name ="sys"><br>
<option value="check">Check</option>
<option value="2ndcheck">2nd Check</option>
</select><br>
<input type="submit" value="Submit">
</form>

PHP:

$ftpServer = $_POST['server'];
$ftpUser = $_POST['user'];
$ftpPass = $_POST['pass'];
$ftpFolder = $_POST['folder'];
$ftpSys = $_POST['sys'];
if($ftpSys == 'check') { $fileName = "test.txt"; $remoteFile ="2ndindex.txt"; }
elseif($ftpSys =='2ndcheck') { $fileName = "2ndtest.txt"; $remoteFile ="2ndindex.txt"; }
//FTP Connection
$conn = ftp_connect($ftpServer) ; 
//
if (@ftp_login($conn, $ftpUser, $ftpPass)) {
    //echo "Connected as $ftpUser@$ftpServer\n";
?>
<div class="working">
Connected as <? echo "$ftpUser@$ftpServer" ?> 
</div>
<?
ftp_put($conn, $ftpFolder, $fileName, FTP_ASCII);
    } else {
?>
<div class="working">
Could not connect as <? echo "$ftpUser@$ftpServer" ?> 
</div>
<?
}

由于 ftp_put 功能有限,我不知道如何将 fileName 和 ftpFolder 放在一起,所以它会用那个名字放在那里,在这个测试工作之后我想让它上传所有文件和文件夹某个文件夹,这可能吗?编辑:哦,还有一件小事:我怎样才能让 PHP 只在表单提交后才起作用?

提前致谢

4

1 回答 1

0

这不需要任何特别的东西。当您使用该用户登录时,您会被分配一个特定的目录,您可以在该目录中启动。在 linux 环境中的共享主机包上。

这一般是:

/home/username/ 

然后从那里,您可以选择任何目录,例如:

'/public_html/'.$ftpFolder.'/.'$fileName;

如果您只想在表单提交后执行 PHP,那么您需要执行一个条件。您可以根据需要检查尽可能多或尽可能少的已发布变量。

if(isset($_POST['server'])):
    //your logic.
endif;

如果您需要知道默认设置到哪个目录,可以使用

ftp_pwd();

它返回 FTP 连接的当前工作目录。

于 2013-09-21T15:53:45.967 回答