C# 从FTP下载文件报错: 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 从FTP下载文件报错: 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。相关的知识,希望对你有一定的参考价值。

这个你遇到的是什么问题,是怎样解决的啊

未找到文件一般是路径或文件名问题。无法访问一般是权限或者文件损坏问题。
祝你成功!
参考技术A 既然说文件不可用,你先试试用别的FTP工具是否能正确下载这个文件,排除FTP服务器端问题,再找你这里的问题

PHP脚本允许用户从远程FTP服务器下载文件[重复]

【中文标题】PHP脚本允许用户从远程FTP服务器下载文件[重复]【英文标题】:PHP script to allows user to download file from remote FTP Server [duplicate] 【发布时间】:2021-04-08 19:29:24 【问题描述】:

我有一个带有公共 IP 的 FTP 服务器,用于与其他无需身份验证即可下载的用户共享文件(例如ftp://88.88.111.111/file.txt)。 您可能知道,最近 Google Chrome 开始过滤 FTP 连接。 (我知道有一些解决方法,但我对替代解决方案感兴趣。

我想要实现的是来自托管我的网站(并且支持 HTTPS 连接)的服务器的 PHP 接口,因此用户可以转到 https://www.mywebsite.com/interface.php?get=file.txt,他们实际上会在他们的计算机上下载从 @ 获取的文件987654325@。 因此,用户不会使用任何 FTP 连接,这完全是隐藏的。 (不知道有没有把我的想法解释清楚)

我不是这方面的专家,所以我想了解它是否可以完成,以及您是否有一些关于如何实施的指示。

提前致谢!

【问题讨论】:

有几种方法可以做到这一点。如果 FTP 服务器和 web 服务器在同一台机器上,你可以剪掉 web 版本的 FTP 部分,然后看磁盘。如果它们在不同的机器上,您仍然可以像以前一样执行相同的操作,但使用Flysystem 之类的抽象。否则,您可以使用 FTP functions 构建自己的,这不是很漂亮,只是为了警告您。 它们在不同的机器上。谢谢你的建议,我会看看的! 【参考方案1】:

你可以这样做从 FTP 服务器下载文件到网络服务器,然后让用户从网络服务器下载文件。

$file_url = "ftp://88.88.111.111/" . $_GET['file'];
$file_tmp = file_get_contents($file_url);
file_put_contents("/var/www/html/files/ . $file_tmp);
$download_url = "https://www.mywebsite.com/files/" . $_GET['file'];
header('Location: $download_url');
exit;

【讨论】:

无需将文件存储在网络服务器上。见Download file via PHP script from FTP server to browser with Content-Length header without storing the file on the web server。 感谢大家的帮助!我只需 10 行代码就能做到这一点

以上是关于C# 从FTP下载文件报错: 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。的主要内容,如果未能解决你的问题,请参考以下文章

C#客户端用WebClient上传文件至IIS服务器,报错:远程服务器返回错误: (404) 未找到

ftp应用程序出错:"远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)"

PHP脚本允许用户从远程FTP服务器下载文件[重复]

C# winform如何实现批量上传文件到远程服务器?

远程FTP下载文件

C#实现开发windows服务实现自动从FTP服务器下载文件(自行设置分/时执行)