【问题标题】:PHP uploading file from browser to FTPPHP从浏览器上传文件到FTP
【发布时间】:2018-10-13 16:12:39
【问题描述】:

我想将文件从用户机器上传到我的 FTP 中的文件夹 uploads,但它不起作用。你能帮帮我吗?

$ftp_server = "some ip";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, "some name", "some password");

$target_dir = "uploads/";
$target_file = basename($_FILES["filename"]["name"]);

if (ftp_fput($ftp_conn, $target_dir.$target_file, FTP_ASCII))
  {
  echo "Successfully uploaded $target_file.";
  }
else
  {
  echo "Error uploading $target_file.";
  }

【问题讨论】:

  • 我无法告诉我“您无法删除此问题,因为其他人已经花费了时间和精力来回答它。”
  • 是的,上传工作正常

标签: php ftp upload


【解决方案1】:

您需要指定要上传到 FTP 服务器的本地文件(从网络服务器开始)。

您可以使用$_FILES["filename"]["tmp_name"] 检索包含通过HTTP POST 从用户机器上传到您的网络服务器的文件的临时文件的名称。阅读 PHP 中的 POST method uploads

然后您可以将其传递给ftp_put(不需要ftp_fput):

ftp_put($ftp_conn, $target_dir.$target_file, $_FILES["filename"]["tmp_name"], FTP_IMAGE)

您的代码中的另外两个问题(这不是您的直接问题,但您将在解决后立即面临它们):

  • 绝对不要使用FTP_ASCII,如果你要上传二进制文件,比如.mp3。使用FTP_IMAGE

  • need to use ftp_pasv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2017-05-16
    相关资源
    最近更新 更多