清空$ _FILES PHP

时间:2017-05-05 13:48:41

标签: php html image

所以,我有一个表格可以将文字发布到博客上。其中一个信息包括图像。

<label class="w3-text-black">Image:</label>
<input name="image" type="file"/>
<br></br>
<button name="submit" type="submit" class="w3-btn w3-gray w3-hover-black">Send</button>

我有PHP部分接收所有信息,但只将其余部分发送到数据库,如果图像是PNG,则将图像上传到我的服务器。

$temp = explode(".", $_FILES['image']['name']);

    if (strstr('.png', end($temp))){ //condition }

此代码在我的localhost中使用时有效,但是一旦我将其上传到我的服务器,就会出现此错误:警告:strstr():空针

$ temp的作用是将扩展与爆炸分开。

之后,我改变了我的文件名,所以我可以稍后用js访问它。

$sqlImg = "SELECT * FROM posts WHERE post_id = (SELECT MAX(post_id) FROM posts)";
            $resid = mysqli_query($conn, $sqlImg);
            $linha = mysqli_fetch_assoc($resid);
            $id = $linha['post_id'];

            $path = 'blogimg/blog_img' . $id . '.' . end($temp);

            if (move_uploaded_file($_FILES['imagem']['tmp_name'], $path)){}

2 个答案:

答案 0 :(得分:1)

您不应该使用filename检查文件扩展名 而不是这样做。

$allowed =  array('png'); // n number of file types here
$filename = $_FILES['image']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(in_array($ext,$allowed) ) {
    // Do operations;
}

答案 1 :(得分:0)

我真的非常简单。我在我的本地文件上设置了enctype,但是我服务器中托管的文件没有。所以我添加了它,一切正常。