我在创建上传和存储图片的表单时遇到了问题。
上传(提交表单)后,我使用print_r($FILES)
函数:
Array ( [Image] => Array ( [name] => 4HfoEtn.jpg [type] => image/jpeg [tmp_name] => C:\Windows\Temp\php151F.tmp [error] => 0 [size] => 70107 ) )
但是,在我的文件浏览器中导航到C:\ Windows \ Temp \时,该文件不存在。
此外,当我跑:
$tmp_image_dir = basename($_FILES['Image']['tmp_name']);
echo "<img src=\"" . $tmp_image_dir . "\">" . "<br>";
没有图像显示。
另外,当我跑:
$image_dir = "/images/";
$image_dir = $image_dir . basename($_FILES['Image']['name']);
if(move_uploaded_file($_FILES['Image']['tmp_name'], $image_dir)) echo "Image Uploaded Successfully" . "<br>";
我没有得到“Image Uploaded Successfully”的读数
然后,很明显,当我跑步时:
echo "<img src=\"" . $image_dir . "\">" . "<br>
我还得到一个没有图像的图像占位符。
答案 0 :(得分:1)
确保$image_dir
存在,如果不是mkdir
或手动创建
您不需要在basename
中使用$_FILES["Image"]["name"]
,因为它已经是文件的基本名称。
尝试以下代码
<?php
$image_dir = "images/";
if ( !file_exists( $image_dir ) ) {
mkdir( $image_dir, 0755 );
}
$image_dir = $image_dir.$_FILES["Image"]["name"];
if ( move_uploaded_file( $_FILES["Image"]["tmp_name"], $image_dir ) ) {
echo "Image Uploaded Successfully<br>";
}
echo '<img src="'.$image_dir.'">';
?>