PHP图像上传中的未定义索引

时间:2018-03-20 03:13:24

标签: php html mysql html5 file-upload

我正在尝试上传要存储在mysql数据库中的图像但是我一直收到错误:

  

注意:第17行的> [php-path] /tuto>rsignupsubmit.php中的未定义索引:profilepic

表单上有一个类型文件的简单按钮上传:

<div class="field">
    <label>Profile Picture</label>
    <input class="button" type="file" name="profilepic">
</div>

然后我在另一个提交页面上有这个代码,我对PHP很新,但是我已经搜索过并且无法在任何地方找到解决方案。

//File upload
$target_dir = "../img/";
$newprofilepic = $target_dir . basename($_FILES ["profilepic"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($newprofilepic,PATHINFO_EXTENSION));

$newlocation = mysqli_real_escape_string($conn,$_POST['location']);
$insertquery = "INSERT INTO tutors(name, username, password, email, mobile, 
profilepic, location, 
message)"."VALUES('$newname','$newusername','$newpassword','$newemail', 
'$newmobile', '$newprofilepic', '$newlocation', '$newmessage')";

$result = mysqli_query($conn, $insertquery) or die(mysqli_error($conn));


mysqli_close($conn);

提前致谢。

2 个答案:

答案 0 :(得分:1)

我试图重现此错误。这是我的代码

<form action="" method="post" enctype="multipart/form-data" >
   <div class="field">
      <label>Profile Picture</label>
      <input class="button" type="file" name="profilepic">
   </div>
   <div>
      <input type="submit">
   </div>
</form>

$target_dir = "../img/";
$newprofilepic = $target_dir . basename($_FILES["profilepic"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($newprofilepic, PATHINFO_EXTENSION));

此错误并不适合我。您是否在表单代码中使用enctype="multipar/form-data"

如果$_FILES数组中不存在此项,则会出现此错误。请使用var_dump($_FILES);

进行检查

答案 1 :(得分:0)

未定义索引:当您调用数组或对象的元素但该元素不存在时,是一个常见错误。例如,如果在下面的$ _FILES数组中没有&#34; profilepic&#34;你会得到这个错误的元素。

$ _ FILES [&#34; profilepic&#34;] [&#34; name&#34;]