我目前在将一些图像从我的网络文件管理器加载到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文件管理器)直接访问文件。我可以获得我指定的目录中的所有文件的列表,但我不知道如何实际加载它们,以及是否可以完成直接文件访问。任何帮助都会受到赞赏,因为我对这类事情缺乏了解。
答案 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" />
请为此目的单独创建一个用户,只对该文件夹具有读访问权。