PHP Web文件管理器

时间:2014-04-14 18:44:55

标签: php ftp

我目前在将一些图像从我的网络文件管理器加载到php页面时遇到了一些麻烦。我的页面中有类似的内容:

<?php
define("FTP_CONNECT_IP", ip);
define("FTP_CONNECT_PORT", port);

// Set username and password
define("FTP_LOGIN_USER", username);
define("FTP_LOGIN_PASS", pw);


// Connect to FTP server
$conn = ftp_connect(FTP_CONNECT_IP, FTP_CONNECT_PORT); 

// Log into FTP srever
$login_result = ftp_login($conn, FTP_LOGIN_USER, FTP_LOGIN_PASS);


if(ftp_pasv( $conn, true )){

    echo 'works';        
}else{
{
    echo 'dont works';
}
}
ftp_close($conn);

?>

问题是,我不知道如何从我的nas(web文件管理器)直接访问文件。我可以获得我指定的目录中的所有文件的列表,但我不知道如何实际加载它们,以及是否可以完成直接文件访问。任何帮助都会受到赞赏,因为我对这类事情缺乏了解。

1 个答案:

答案 0 :(得分:0)

if(ftp_pasv( $conn, true )){ $contents = ftp_nlist($conn, '/');

尝试添加上面的代替echo 'works';行,然后查看var_dump($contents);显示的内容。

要在PHP中打印图像,假设您将文件路径存储为变量。我定义了这样的变量:

$imageUrl = '/home/user/domain/assets/img/123.png';

虽然你可以按照上面的方式做到:

define("/home/user/domain/assets/img/123.png", imgUrl);

当您定义了URL后,您必须使用HTML来打印图像。

这方面的一个例子是:

echo "<img src=\"".$imageUrl."\"/>";

上述内容实际上与echo "<img src=$imageUrl />";相同,但已正确编写以进行验证并转义引号。

或者更简单地说,关闭你的php标签并将其重新打开以获取URL。

?> <img src="<? echo $imageUrl; ?>" /> <?

这两种方法都使用HTML,即在网页上显示内容的标记语言。

编辑:虽然不推荐,但不安全,但实际问题的可行解决方案是在IMG标记中包含FTP路径,如下所示。

<img src="ftp://user:password@domain.com:port" />

请为此目的单独创建一个用户,只对该文件夹具有读访问权。