注意:未定义索引:[重复]中的图像
Posted
技术标签:
【中文标题】注意:未定义索引:[重复]中的图像【英文标题】:Notice: Undefined index: image in [duplicate] 【发布时间】:2012-10-18 00:23:23 【问题描述】:可能重复:Undefined index: file
您好,我现在正在学习如何将图像上传到数据库,但我收到了这个错误/通知
注意:未定义索引:第 19 行 C:\xampp\htdocs\Pildibaas\index.php 中的图像
这是我的 index.php 整个代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Image upload</title>
</head>
<body>
<form action="index.php" method="POST" enctype="multipart/form-data">
File:
<input type="file" name="image"> <input type="submit" value="Upload">
</form>
<?php
mysql_connect ("localhost", "root", "") or die (mysql_error());
mysql_select_db ("databaseimage") or die (mysql_error());
?>
</body>
</html>
从 index.php 中删除的第 19 行(此行给出错误):
echo $file = $_FILES['image']['tmp_name'];
从谷歌发现我需要更改 tmp 文件夹的权限,但它应该已经拥有它需要的所有权限。
在教程中他没有得到这个错误
谢谢
【问题讨论】:
您在代码中有 2 次文档...这真的是您所拥有的吗?还是复制空间出了问题??? 现在代码中没有 echo 行... 只需更改您的表单以包含 enctype="multipart/form-data" 就像 【参考方案1】:echo $file = $_FILES['image']['tmp_name'];
应该是
if(isset($_FILES['image']))
echo $_FILES['image']['tmp_name'];
这首先检查是否设置了$_FILES['image']
。如果没有,这将不会运行。因此,不会出现超出索引的错误。
因为您必须先提交表单才能设置$_FILES['image']
...
另外,输入标签是自动关闭的,所以你的表单不会是:
<form action="index.php" method="POST" enctype="multipart/form-data">
File:
<input type="file" name="image"> <input type="submit" value="Upload">
</form>
但是:
<form action="index.php" method="POST" enctype="multipart/form-data">
File:
<input type="file" name="image" /> <input type="submit" value="Upload" />
</form>
【讨论】:
是的,感谢您修复错误/通知。但是它不会将某些内容上传到 tmp 文件夹中吗?因此,如果我做类似echo $image = file_get_contents($_FILES['image']['tmp_name'])
之类的事情,我会得到很多废话和符号。
@user1203497,当然你得到了很多rubisch。首先你必须将文件移动到某个地方:move_uploaded_file($_FILES['image']['tmp_name'], $newDirForImage);
,然后你必须在图像标签中回显 url:echo '<img src="'.$newDirForImage.$fileName.'" />';
希望你明白我的意思......【参考方案2】:
echo $file = $_FILES['image']['tmp_name'];
应该是
echo $_FILES['image']['tmp_name'];
or
if(!empty($_FILES) && isset($_FILES['image']))
echo $_FILES['image']['tmp_name'];
你也可以使用
print_r($_FILES);
【讨论】:
以上是关于注意:未定义索引:[重复]中的图像的主要内容,如果未能解决你的问题,请参考以下文章