【问题标题】:Files are getting corrupted via FTP Client Upload文件通过 FTP 客户端上传损坏
【发布时间】:2010-12-26 13:59:22
【问题描述】:

我尝试将文件上传到我的服务器

my.php(普通本地文件)

<?php
$box_title= "SEARCH ME"
?>

通过FileZilla FTP Client上传后(远程服务器文件)

// SOMETIMES ABOVE FILE BECOMES
<?php$box_title= "SEARCH ME"?>

// OR SOMETIMES LIKE THIS
<?php

$box_title= "SEARCH ME"

?>

我怀疑这是与服务器相关的问题,但不确定。谁能用解决方案解释这个问题

谢谢

【问题讨论】:

  • 是以ASCII还是Binary模式传输的?
  • 服务器上运行的是哪个 ftp 软件?
  • 我使用自动模式。它发生在特定的共享主机上。在其他地方我可以正确上传文件。
  • 我已经提到了“FileZilla FTP Client”
  • 您是否也尝试过其他 FTP 客户端软件?

标签: php ftp ftp-client


【解决方案1】:

上面的评论已经建议查看 ASCII/二进制模式。 FTP 的一个奇怪属性是文件可以被视为 ASCII 文本(在这种情况下,FTP 传输将自动更改行尾的编码以适应目标机器使用的编码)或二进制(在这种情况下它们将被传输没有任何变化)。

您在问题中引用的残缺可能没有看起来那么糟糕;一些编辑器实际上不显示 UNIX 样式的行结束编码(这是 ASCII 模式下的 FTP 可能放入您的文件中的内容),即使它存在。

行尾的不同编码是便携式计算产品中的一个持续的悲伤来源......在这种情况下,我可以推荐的最好的事情是让你尝试一下它是否像你现在做的那样工作,如果它没有,请尝试将您的 FTP 客户端的传输模式强制设置为不同的设置。

【讨论】:

  • 我尝试了“二进制模式”,它成功了。那么我应该将其保留为二进制模式以供将来的文件(图像/文件)上传吗?
  • 这完全取决于您。如果生成的文件工作正常,请务必使用二进制模式。如果服务器期望的行结束编码与您的文件不同,有时您会在二进制模式下得到令人困惑的结果,但在它发生之前您可能不需要担心。
【解决方案2】:

我愿意花 0.02 美元买这个。

正如 Jan 所建议的,这绝对是一个 ASCII 传输问题。

但是,我认为这不是 FileZilla 客户端的适当或预期行为。

我正在通过 SFTP (SSH) 将 Perl 文件从 Debian Linux 客户端传输到 Debian Linux 服务器。

FileZilla 设置为以 ASCII 模式传输扩展名为 .pl 的文件,但这会产生 Ish Kumar 在原始问题中指出的不正确格式。

以 ASCII 模式传输的文本文件应该像从 Windows 传输到 *nix 一样从 *nix 传输到 *nix。

我把这个归咎于 Filezilla。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多