我有一个自定义drupal模块,用于保存从uploadify jquery插件传递的上传文件。一切似乎都很好,但有些图像中出现了灰色块。参见:
http://5oup.net/sites/default/files/360/5ouppic.jpg
这是用户提交的图片,我无法自己重现问题 - 据我所知,这是服务器方面的问题,但我不确定如何纠正这个问题。
以下是我的模块中处理上传的PHP:
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$filename = $_FILES['Filedata']['name'];
$filename = preg_replace("/[^A-Za-z0-9. ]/", '', $filename);
$filename = str_replace(" ", '_', $filename);
$targetFile = str_replace('//','/',$targetPath) . $filename;
$name = $filename;
mkdir(str_replace('//','/',$targetPath), 0755, true);
move_uploaded_file($tempFile,$targetFile);
上传是否以某种方式“拖延”?有关为什么它只会出现在某些图像而非其他图像上的任何想法?非常感谢任何帮助!
詹姆斯
编辑 - 能够重现问题
我已经联系了一位用户,并且能够使用此jpeg重新创建问题(即每次上传灰色像素):
http://5oup.net/test/sucon.jpg
这个jpeg上传很好:
我只是无法弄清楚差异?!到底是怎么回事?
由于
答案 0 :(得分:1)
虽然它当然可能是传输错误损坏了JPG图像的一小部分,但如果这是一次事故,我会首先看一下用户。在上传之前调整图像大小时,更有可能出现问题。询问他们是否在上传之前立即调整图像大小,以及调整大小的文件的样子。让他们给你发电子邮件。
也许你想要上传原始的,完好无损的文件,这里有人可以通过查看来了解更多信息。
我首先会检查是否可以从完整的图像(让他们通过电子邮件发送给您),以及来自不同的图像在用户身边复制。
编辑(评论中空格不足)
非常非常奇怪。从我对JPG格式的了解很少,这可能是传输在几个字节内被破坏时的典型行为:许多块可能会受到影响并导致这种情况发生。它可能是什么,我不能说 - 可能是从硬盘问题(不太可能)到某些防火墙过滤数据。 第一步肯定是获取原始图像并查看问题是否可以再现。我打赌它不能。然后进行磁盘检查,尽可能多地更换,更改和测试(移动临时目录/更新服务器软件)。
如果没有任何帮助,作为最后的手段,您可能希望在另一台服务器上设置该站点的镜像副本,并在那里进行一些自动上传以查看它是否再次发生。 Selenium IDE可以为此提供帮助。
答案 1 :(得分:0)
我认为$_SERVER['DOCUMENT_ROOT'
]会在最后给出网站的文档路径而不带斜杠('/')。
请用以下行替换上述代码的第二行,
$targetPath = $_SERVER['DOCUMENT_ROOT'] .'/'. $_REQUEST['folder'] . '/';
希望这会对你有所帮助....