【问题标题】:trying to connect to local server using php (ftp_connect)尝试使用 php (ftp_connect) 连接到本地服务器
【发布时间】:2014-12-11 15:29:31
【问题描述】:

我在 Linux 上设置了一个使用 Apache2 的服务器,我正在尝试将文件上传到该服务器。

我正在使用:

$conn = ftp_connect("localhost") or die("Server connection failed.");

实现这一点,虽然它不起作用。

我已尝试对同一台服务器执行“wget”命令,但此响应也失败了:

Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:21... failed: Connection refused.

有人知道如何在 ftp_connect php 命令中使用我的服务器吗?

非常感谢你们。

【问题讨论】:

  • Apache 不是 ftp 服务器
  • 备份一秒:你想在这里做什么? PHP代码可以直接操作服务器上的文件;通常没有理由为此需要 FTP。
  • 尝试上传文件,通过命令行在其上运行已经编写好的算法,将结果临时保存在服务器上的某个位置,并将它们作为下载提供给客户端。我知道如何实现第二部分,但它正在上传让我烦恼的文件,我认为“get”方法是更有利的选择,看来我错了,现在正在尝试使用“post”方法

标签: php permissions server


【解决方案1】:

正如 Maerlyn 的评论中提到的,Apache 是一个 HTTP 服务器。这意味着它只能通过 HTTP 协议进行通信。

您正在尝试连接到 FTP 服务器,这是完全不同的事情(!)。

但是,我认为您想要做的不是连接到 FTP 服务器并通过它上传文件;而您想要做的是使用 HTTP POST(或 PUT)请求将文件上传到服务器。

这样做的方法是创建一个带有method="post" 的HTML 表单,其中包含一个<input type="file"> 元素。提交后,PHP 页面将收到 $_FILES 超全局文件中的文件,然后您可以使用 move_uploaded_file() 等函数将其移动到任何您想要的位置。

如需更深入的解释,请参阅PHP manual

【讨论】:

  • 啊,太棒了!非常感谢你们!抱歉,我有点生疏,上周才开始查看所有这些服务器的东西,所以我对这一切的理解仍然非常初级。我在html中使用“get”方法上传,对文件做一些事情然后移动到新页面显示结果数据,我可以用“post”方法在同一页面上显示结果数据吗?跨度>
  • 由于某种原因文件没有移动,所以我目前的确切设置如下: $formfile = $_FILES["file"]["name"]; $upldfile = move_uploaded_file($formfile, "./uploads/") 或 die ("文件未正确移动");这是在它自己的 php 文件中,该文件是从另一个 html 文件中的表单调用的,写为:
    它正在回显“或死”文本
  • 你刚才给出的代码有2个问题;第一个参数应该是上传文件的路径(不仅仅是 HTML 页面上提供的名称。它存储在 $_FILES 数组的 tmp_name 字段中)。此外,move_uploaded_file 的第二个参数不仅仅是目录的路径,还应该包含文件名。在您的代码中,它缺少文件名。将其更改为move_uploaded_file($_FILES["file"]["tmp_name"], "./uploads/".$_FILES["file"]["name"]),它应该可以工作(除非它因其他原因而失败。)
猜你喜欢
  • 2012-01-09
  • 2011-09-26
  • 2012-09-09
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 2016-08-23
相关资源
最近更新 更多