2012-01-09 70 views
0

我使用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'] . '" />'; 

它给了我一个破碎的图像。

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

+0

只需查看您的网址指向的“查看HTML”浏览器的功能(并且在您问这里问题之前始终这样做) – zerkms 2012-01-09 01:05:41

回答

2

$_FILES['image']['tmp_name']是一个临时存储器,仅适用于一个请求。只要它通常位于操作系统目录的临时文件/tmp,它就不能从网站上获得。您需要将文件移动到某种永久性存储器上,该存储器可从网上获得。

+0

我没有意识到这是顶级/ tmp。那绝对不可用。 – burger 2012-01-09 01:26:51

0

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

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

上面的代码将文件上传到ima​​ges目录,那么你可以使用这个形象。

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