通过PHP表单上传FTP

通过PHP表单上传FTP,php,ftp,Php,Ftp,我想上传一个文件通过FTP上传的形式 <html> <body> <form enctype="multipart/form-data" action="upload_file.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a file to upload: <input name

我想上传一个文件通过FTP上传的形式

<html>
  <body>
    <form enctype="multipart/form-data" action="upload_file.php" method="POST">
      <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
      Choose a file to upload: <input name="uploadedfile" type="file" /><br />
      <input type="submit" value="Upload File" />
    </form>
  </body>
</html>

选择要上载的文件:
以下是PHP文件:

<?php

$ftp_server = "xxx";
$ftp_username   = "xxx";
$ftp_password   =  "xxx";

// setup of connection
$conn_id = ftp_connect($ftp_server) or die("could not connect to $ftp_server");

// login
if (@ftp_login($conn_id, $ftp_username, $ftp_password))
{
  echo "conectd as $ftp_username@$ftp_server\n";
}
else
{
  echo "could not connect as $ftp_username\n";
}

$file = $_FILES["file"]["name"];
$remote_file_path = "/home/www/lifestyle69/import/".$file;
ftp_put($conn_id, $remote_file_path, $file, FTP_ASCII);
ftp_close($conn_id);
echo "\n\nconnection closed";

?>

FTP连接已成功连接,但文件不存在

有人能帮我吗


谢谢

您确定要上载到的文件夹具有正确的权限吗?尝试将其修改为777,看看是否有效。

该文件以临时名称存储在服务器上,因此当您尝试上载
$\u文件['file']['name']
时,它会失败,因为不存在具有该名称的文件。相反,您应该使用
$\u文件['file']['tmp\u name']

解释得稍微好一点,因为您有

因为您需要PHP存储的临时副本的文件名,该文件名存在于服务器上:

ftp_put($conn_id, $remote_file_path, $file, FTP_ASCII); // wrong
ftp_put($conn_id, $remote_file_path, $_FILES["uploadedfile"]["tmp_name"],
        FTP_ASCII); // right

有关$\u文件的更多信息,请参阅。

什么数据库?请检查文件夹权限,抱歉,它们应设置为777Ups。我想写ftp连接。但它不起作用。如果你有一个更大的表格,你需要再次键入?只是一个建议:在没有免责声明的情况下,永远不要建议“尝试chmoding to 777”这样做只是为了测试。一旦发现问题所在,就将其恢复为更安全的权限。@mmalmeida我想知道这一点。服务器上的权限不是在经过密码的ftp连接之后吗?即使我的ftp主机上有一个777文件夹,也无法从internet写入,您必须登录到服务器。Felix,将文件权限设置为777将允许任何人读取、写入或执行该文件。不需要FTP访问,您可以通过http访问。
ftp_put($conn_id, $remote_file_path, $file, FTP_ASCII); // wrong
ftp_put($conn_id, $remote_file_path, $_FILES["uploadedfile"]["tmp_name"],
        FTP_ASCII); // right