You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中通过FTP上传图片时文件损坏问题求助

图片FTP上传损坏问题解决方案

核心问题出在FTP上传模式的选择上:你当前使用FTP_ASCII模式上传图片,这种模式会自动转换文本文件的换行符,但对于图片这类二进制文件来说,会破坏其原始字节结构,导致文件损坏。

修复步骤

将ftp_put函数的传输模式参数从FTP_ASCII改为FTP_BINARY(或FTP_IMAGE,二者等价),修改后的代码片段如下:

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {
    echo "successfully uploaded $file\n";
    exit;
} else {
    echo "There was a problem while uploading $file\n";
    exit;
}

额外检查项

  • 先确认本地uploads文件夹中的图片是否完好:如果本地文件就已经损坏,说明问题出在本地文件接收环节,需要检查前端上传表单是否添加了enctype="multipart/form-data"属性
  • 验证服务器目标文件夹的权限:确保FTP账号拥有该文件夹的写入权限
  • 若仍然无法正常上传,尝试开启FTP被动模式,在ftp_login之后添加:
ftp_pasv($conn_id, true);

部分服务器环境需要被动模式才能完成文件传输。

内容的提问来源于stack exchange,提问作者Nashie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:15:34