0

我尝试过使用 PHP 上传图片的原生方式,但我的朋友建议我使用 class.upload.php 库,结果仍然与以前相同。我只能上传某些图像而没有那个小图标,这意味着浏览器找不到图像,但奇怪的是,当我将“无效”图像下载到我的计算机时,它们很好。大约 50% 的图像确实有效,但其余的只是显示它们应该具有的适当大小,但没有图像。这是我的代码(我的 html 表单有一个名为的文件输入类型filename

$handle = new upload($_FILES['filename']);

if ($handle->uploaded)   
{
   if ($file_src_size < 20000)
   {
        $handle->file_new_name_body = "test";  
        $handle->image_convert = 'jpg';
        $handle->process('/');  

        echo "<img src = \"test.jpg\" />";
    }
    else echo "Files must be 20 kb or under";
}
else echo "Upload failed, please try again";
4

2 回答 2

1

您可以下载图像并在本地重新显示它们的事实表明问题不在于上传脚本。另一个问题可能是图像未正确保存以供网络查看。例如,一个文件以 .jpg 结尾并且可以在本地查看并不意味着它可以被浏览器识别。许多浏览器无法查看 CMYK jpeg。

于 2012-06-07T22:30:18.807 回答
0

当出现问题时,您需要调试代码,只有有权访问您计算机的人才能告诉您原因。

1)您使用的库有错误检测代码

if ($handle->processed) {
       echo 'image resized';
       $handle->clean();
} else {
   echo 'error : ' . $handle->error;
}

2)您应该能够查看处理后的图像数据,并找出浏览器无法将其解析为图像的原因。如果您可以为无效图像提供 URL,我将能够告诉您它有什么问题。

3) 调用“process('/');”将文件写入根目录 不好。您应该创建一个目录来保存来自其他人的文件,以避免在某些人上传名为“index.php”的图像时出现潜在问题。

于 2012-06-16T01:39:20.983 回答