php move_uploaded_file,移动时图像变为小红色x图标

时间:2014-02-20 03:22:04

标签: php file-upload upload

我正在尝试上传图片并立即将它们传输到特定文件夹。

这是我的代码:

    $file_path = "assets/placervw_photo/";
    $file_path = $file_path . $_FILES['uploaded_file']['name'];
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path))
    {
        echo "success";
    }

页面显示“成功”,但是当我检查文件夹时,它包含具有相同文件名和文件类型的文件,但它变成带有白色背景的小红色X图标。以下是:http://s14.postimg.org/ifoiyzde5/red_x.png

我已将它测试为jpg和png文件,它们也有相同的结果。

有关如何解决此问题的任何建议?提前致谢! :)

1 个答案:

答案 0 :(得分:1)

“小红X”是您的浏览器说“这里没有图像”。

您是否尝试在上传的图片中显示图片?你不能。你已经发送了一些不是图像的内容,所以试图向浏览器发出信号“我这里有一张图片”会给你一个小小的红色X.

您需要发送带有正确网址前缀的IMG网址:

$url = "http://yourserver.com/path/to/".$file_path;

echo "Success, here's your image: <img src=\"$url\" />";

你也可能不信任用户的文件名,但是分配你选择的随机ID,并验证它 确实是一个图像(你可以使用{{1还要验证扩展名是否与MIME类型匹配)。以防万一有人给你发送一张名为“../../../pwn3d.php”的图片:它已经发生了。