通过带有PHP代码的Web服务器将应用程序上的本地文件上传到FTP服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过带有PHP代码的Web服务器将应用程序上的本地文件上传到FTP服务器相关的知识,希望对你有一定的参考价值。
关于如何使用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 = ".....";
。
<?php
$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内置支持来上传文件,那么在提交带有文件(<form>
)的HTML <input type="file" name="..."/>
时,您需要让您的应用程序执行与Web浏览器相同的HTTP请求。
如果您发现在您的(客户端)开发环境(我们不知道任何事情)中实现HTTP文件上传很困难,您可以使用一些更简单的机制,例如带有文件内容的简单HTTP POST
请求(没有多部分,只是二进制数据)的文件)。虽然我相信大多数桌面应用程序大多数框架本来都支持HTTP文件上传。
以上是关于通过带有PHP代码的Web服务器将应用程序上的本地文件上传到FTP服务器的主要内容,如果未能解决你的问题,请参考以下文章