为什么我上传的图片不显示?

时间:2012-01-09 01:02:03

标签: php image file-upload

我正在使用PHP上传文件。上传似乎很成功。 $ _FILES数组是:

Array ( [image] => Array ( [name] => mount.jpg [type] => image/jpeg [tmp_name] => /tmp/php61qYZj [error] => 0 [size] => 28947 ) )

一切似乎都井然有序。但是,当我做的时候

echo '<img src="' . $_FILES['image']['tmp_name'] . '" />';
它给了我一个破碎的图像。

这是如此基本,怎么可能失败?

3 个答案:

答案 0 :(得分:2)

$_FILES['image']['tmp_name']是一个临时存储空间,仅适用于一个请求。只要它通常位于临时文件/tmp的OS目录中,就无法从Web获得。您需要将文件移动到某个永久存储器,该存储器可从Web上获得。

答案 1 :(得分:1)

您正试图显示已保存在/tmp中的图片。您应该将文件移动到网页根目录内的目录中。

另见:Tutorial on PHP-based file uploading

答案 2 :(得分:0)

您需要将上传的文件移至图片文件夹,然后您可以使用此图片在浏览器中显示。

示例

move_uploaded_file($_FILES['image']['tmp_name'],'/public_html/images/'.$_FILES['image']['name']))

上面的代码会将您的文件上传到ima​​ges目录,然后就可以使用这个图像了。

对于ajax文件上传请与我联系。