通过PHP表单上传FTP
我想上传一个文件通过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
<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