【问题标题】:FTP & PHP File Uploader, change directoryFTP 和 PHP 文件上传器,更改目录
【发布时间】:2015-11-30 12:11:47
【问题描述】:

所以我正在尝试使用 xampp 在我的 localhost 设置上创建一个 ftp php 上传器。 从 C:\xampp\htdocs\ 上传文件可以正常工作,但如果我尝试从桌面上传文件,它将无法正常工作。有没有办法获取“源”文件的路径,以便我可以从...\htdocs\以外的其他地方上传,或者我该如何解决这个问题?

文件被上传到我桌面上的一个 ftp 文件夹,正如我所说,当您从 C:\xampp\htdocs 选择一个文件时,它可以正常工作。

<?php
if($_POST){
$source = basename($_FILES["source"]["name"]);
$fileType = pathinfo($source, PATHINFO_EXTENSION);

$remote_file = $source;
$ftp_server = '127.0.0.1';
$ftp_user_name = 'xxx';
$ftp_user_pass = 'xxx';

$conn_id = ftp_connect($ftp_server);


$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);


if (ftp_put($conn_id, $remote_file, $source, FTP_ASCII)) {
echo "successfully uploaded $source\n";
} else {
echo "There was a problem while uploading $source\n";
}


ftp_close($conn_id);
}
?>


<!DOCTYPE html>
<html>
<body>

    <form action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" id="source" name="source"></input><br>
            <input type="submit" value="Upload file" name="submit"      id="submit"></input><br>
    </form>

</body>
</html>

【问题讨论】:

    标签: php file upload ftp directory


    【解决方案1】:

    您使用name。要访问上传的文件,您需要使用tmp_name。将$source = basename($_FILES["source"]["name"]); 更改为$source = basename($_FILES["source"]["tmp_name"]);

    【讨论】:

    • 解决方案:我之前尝试过,但没有让它工作。原因是我有 "$remote_file" = $source,它在从 \htdocs\ 上传内容之前有效,但我现在必须更改它。所以你有点为我解决了:)干杯