使用表单+PHP上传文件夹中的文件这很好用。
同样的文件,我必须在另一个域中复制。上传是通过FTP与这段代码:
define("FTP_ADDRESS","DESTINY_SERVER");
define("FTP_USERNAME","MY_FTP_USER");
define("FTP_PASSWORD","PASSWORD_FTP");
$LOCAL_FILE = $_FILES["files"]["tmp_name"][0];
$FTP_FILE = "LA_RUTA_DE_DESTINO";
$conn = ftp_connect(FTP_ADDRESS);
$login = ftp_login($conn, FTP_USERNAME, FTP_PASSWORD);
ftp_put($conn, $FTP_FILE, $LOCAL_FILE, FTP_ASCII);
ftp_close($conn);
这种将文件上传到另一个域的操作非常完美。
问题是,在另一个域,目标域中,如果我对上传的文件进行修改,会给我权限问题。
通过POST表单上传文件的属性为APACHE用户。但是这些,通过带有PHP函数的FTP上传的,MY_FTP_USER作为所有者,所以我不能使用PHP对它们做任何事情,应该能够使用PHP-CMS 对它们进行操作
我该怎么做才能将文件上传到FTP,然后从PHP可以毫无问题地对其进行操作?
存在CHMOD权限问题,即用户属性问题。
您可以在上传后更改文件上传后的文件权限级别。将您的php用户与APACHE用户放在同一组中;
$conn = ftp_connect(FTP_ADDRESS);
$login = ftp_login($conn, FTP_USERNAME, FTP_PASSWORD);
ftp_put($conn, $FTP_FILE, $LOCAL_FILE, FTP_ASCII);
// Change permission
if (ftp_chmod($conn, 0664, $FTP_FILE) !== false) {
echo "$file chmoded successfully to 0664n";
} else {
echo "Could not chmod $filen";
}
ftp_close($conn);
664=>组用户可以修改文件