关于如何使用PHP代码将本地文件从应用程序上传到FTP,我想要一些帮助。我是一个业余程序员,可以阅读非常基本的代码结构。所以请避免使用编程术语!
我正在开发一个简单的Windows应用程序(通过可视化编程)。该应用程序将通过网站(例如http://www.mysite/folder/ftp.php)将本地文件上传到我的FTP服务器。我这样做是为了避免在应用程序代码中包含我的FTP登录详细信息。
我发现了一个似乎有效的PHP代码,但我不明白如何在代码中包含我的本地文件路径(例如C:UserDesktopmyfile.txt)。我希望使用以下代码,我发现这很容易理解。我只是不知道如何指定本地文件的路径以及该文件的上传路径。最后,本地路径将在链接中指定(例如http://www.mysite/folder/ftp.php?localpath=....。),所以我认为我应该使用$file=$_GET['file'];而不是$file = ".....";。
$ftp_server="";
$ftp_user_name="";
$ftp_user_pass="";
$file = "";//tobe uploaded
$remote_file = "";
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file
";
exit;
} else {
echo "There was a problem while uploading $file
";
exit;
}
// close the connection
ftp_close($conn_id);
?>
答案
您的Web服务器上的PHP代码绝对无法访问您的本地文件。那将是一场安全噩梦。
您的应用程序必须使用HTTP文件上载(Content-Type: multipart/form-data)将您的本地文件(其内容,而不仅仅是文件名)主动上传到Web服务器。
然后,您的PHP代码可以使用$_FILES变量引用上传的文件。
请参阅PHP中的POST method uploads。
由于您似乎无法理解客户端和服务器端代码,因此您可能首先应该首先实现(和调试)服务器端。对于客户端,使用简单的HTTP / HTML文件上载表单来测试服务器端部分。一旦您启动并运行,请将HTML上载表单替换为应用程序中的代码。
换句话说,如果您想使用PHP内置支持来上传文件,那么在提交带有文件(
)的HTML 时,您需要让您的应用程序执行与Web浏览器相同的HTTP请求。如果您发现在您的(客户端)开发环境(我们不知道任何事情)中实现HTTP文件上传很困难,您可以使用一些更简单的机制,例如带有文件内容的简单HTTP POST请求(没有多部分,只是二进制数据)的文件)。虽然我相信大多数桌面应用程序大多数框架本来都支持HTTP文件上传。