将图像上传到目录时出现问题

时间:2017-01-12 02:06:51

标签: php html

我有一个文件类型输入,我想上传图像。我重写了5次代码,认为我犯了一个错误但到目前为止我看不到它。因为它不起作用。 HTML代码

<form method="post" enctype="multipart/form-data">
<input type="file" name="primaryimg" id="primaryimg"></br>
<input type="submit" value="Sell!" name="uploaditem" />
</form>

这是我的PHP代码

if(isset($_POST['uploaditem'])){
    $filebasename = basename($_FILES['primaryimg']['name']);
    $ext = strtolower(substr($filebasename, strrpos($filebasename, '.') + 1));
    if (($ext == "jpg" || $ext == "gif" || $ext == "png" || $ext == "jpeg") && ($_FILES['primaryimg']['type'] == "image/jpg" || $_FILES['primaryimg']['type'] == "image/gif" || $_FILES['primaryimg']['type'] == "image/png" || $_FILES['primaryimg']['type'] == "image/jpeg")){
        $desired_dir="img/products/sellers/$user/$itemname/";
        $file_name=$_files['primaryimg']['name'];
        if (file_exists($desired_dir . $file_name)){
            $errormsg="Filename already exists.";
        }else{
            move_uploaded_file($_FILES['primaryimg']['tmp_name'], $desired_dir . $file_name);
            $errormsg = $file_name . "successfully uploaded.";
        }
    }else{
        $errormsg = "Error! File is not a valid jpg, gif, png or jpeg";
    }
}

所以我试着回应$filebasename basename($_FILES)所在的$lol=$_POST['primaryimg'];来看看它获得了什么价值。显然它是空的。我做了一个$lol和echo'd $files,它确实显示了项目名称。所以由于某种原因,move_upload_file保持为空,file_upload也不起作用。

这就是我所看到的 the code itself The Code echo/print

将错误报告放在上面我发现以下错误

注意:第21行的D:\ Dropbox \ UoC \ phphosting \ buyathing \ sellanitem.php中的未定义索引:primaryimg

在下面显示的错误之后,图像不是jpg / jpeg ...它应该打印filebasename,因为你可以看到它是EMPTY。

我去了php.ini,看看jpg是否打开了。我尝试上传的图像是550k,但我的最大文件大小是2M所以这也不是问题。 我一直在谷歌搜索5小时,但没有运气。因此,如果有人在我失去理智之前可以帮助我会很棒:') 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您没有创建目录,当您移动文件时,应该存在一个文件夹。首先您应该为此路径img/products/sellers/".$user."/".$itemname."/创建一个目录。

使用php基本功能mkdir()

Here您还可以找到更多信息。然后尝试在特定的loaction中上传图片。我希望这有助于否则评论,我会调查它。