【问题标题】:PHP move_uploaded_file - image not correct colors? (ICC Profile?)PHP move_uploaded_file - 图像颜色不正确? (国际商会简介?)
【发布时间】:2017-07-09 20:48:53
【问题描述】:

我正在尝试上传照片,但是一旦 PHP 使用 move_uploaded_file 处理上传,颜色就会变得一团糟,颜色呈蓝色。我不知道所有这些 ICC 配置文件(设计师的东西)是什么,我只想上传看起来与客户在 Photoshop 中完全相同的图像。

我正在阅读有关 ICC 配置文件的信息,发现 this

但是没有文档。为了让我这样做,我必须拥有原始照片并复制 ICC 配置文件,但在获得原始照片之前我必须上传它,并且在此过程中它会破坏 ICC 配置文件并使图像“蓝色” - 所以这对我来说有点像在转圈。

有人对此有诀窍吗?我更喜欢非 imagemagick 解决方案,因为我不喜欢依赖第三方插件 (server/webhotel issues everytime)。

谢谢!

【问题讨论】:

  • move_uploaded_file() 不会更改文件的单个字节。错误一定在其他地方。
  • 谢谢你的回复,我不知道。我试图通过删除每一行代码来定位错误,但它仍然出现。我正在使用DropzoneJS 插件来处理上传,然后再将其发送到 PHP。 jQuery/插件是否可能对其产生影响?
  • 我不熟悉那个插件,但如果它调整大小或优化图片,它肯定会做。只需将原始文件与 PHP 接收到的文件进行比较即可。
  • 我刚刚用简单的 PHP 上传创建了一个默认的 html 表单,你说的完全正确。不是服务器/php,是插件搞砸了,所以我现在要追踪它。谢谢您的帮助。请让我知道我是否可以接受/赞成您的回答,因为我没有看到该选项。抱歉,我是新来的。

标签: php image-processing upload color-profile color-management


【解决方案1】:

move_uploaded_file() 不会改变文件的单个字节,它只是旧的 rename() 的安全替代方案,专为文件上传而设计,它当然对图像格式一无所知:

此函数检查以确保文件名指定的文件 是一个有效的上传文件(意味着它是通过 PHP 的 HTTP 上传的 POST 上传机制)。如果文件有效,它将被移动到 目的地给定的文件名。

如果有任何机会,这种检查尤其重要 对上传文件所做的任何事情都可能向 用户,甚至同一系统上的其他用户。

错误必须在其他地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 2013-08-21
    • 2020-12-02
    相关资源
    最近更新 更多