注意:未定义索引:[重复]中的图像

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 '&lt;img src="'.$newDirForImage.$fileName.'" /&gt;'; 希望你明白我的意思......【参考方案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);

【讨论】:

以上是关于注意:未定义索引:[重复]中的图像的主要内容,如果未能解决你的问题,请参考以下文章

注意:未定义索引:图像 - 无法找到错误

会话 ID 未显示错误消息注意:未定义索引:用户 ID [重复]

注意:未定义的索引[重复]

注意:if()中未定义的索引按结构排序[重复]

错误的未定义索引将图像上传到服务器

未定义索引+未选择数据库[重复]