所以,我有一个表格可以将文字发布到博客上。其中一个信息包括图像。
<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)){}
答案 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)