用post发送文件,然后用ftp上传

时间:2018-05-03 11:05:53

标签: php ftp

这是一个非常基本的问题,因为我没有正确理解不同协议的基本概念。请放纵。

我可以使用Filezilla将文件上传到我的网站。现在我正在开发一个用户界面,用于发送数据以更新数据库和文件(照片)以保存在目录中。我使用POSTsee here)发送此数据。我收到文件,但无法将其保存到执行

的目标目录
move_uploaded_file($_FILES['PhotoToUpload']['tmp_name'],"../../Photos/".$file_name);

我认为是因为权限(目前为755)。由于我目前可以使用Filezilla FTP上传(所以我知道我有权这样做),

我的问题是

POST之后创建临时文件并使用如下所示的FTP代码(取自here)加载它是不好的做法(或在概念上是错误的)?

<?php
$ftp_server = "myftp.co.uk";
$ftp_user_name = "myusername";
$ftp_user_pass = "mypass";
$destination_file = "../../Photos/";
$source_file = $_FILES['PhotoToUpload']['tmp_name'];

// set up basic connection
$conn_id = ftp_connect($ftp_server);
ftp_pasv($conn_id, true); 

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// check connection
if ((!$conn_id) || (!$login_result)) { 
    echo "FTP connection has failed!";
    echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
    exit; 
} else {
    echo "Connected to $ftp_server, for user $ftp_user_name";
}

// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

// check upload status
if (!$upload) { 
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}

// close the FTP stream 
ftp_close($conn_id);
?>

0 个答案:

没有答案