php - 使用 move_uploaded_file 上传文件错误

标签 php mysql

我对 move_uploaded_file 函数有疑问。问题是当我选择要上传的图片时,它并没有移动到我设置的文件中。

<?php
include("db_connect.php");
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'bmp');
$path = 'images/';
if( $_FILES['image'])
{

$img = $_FILES['image']['name'];
$tmp = $_FILES['image']['tmp_name'];
$ext = strtolower(pathinfo($img, PATHINFO_EXTENSION));
$final_image = rand(1000,1000000).$img;
// echo $img.$tmp.$final_image;
    if(in_array($ext, $valid_extensions))
    {
     $path = $path.strtolower($final_image);

        if(move_uploaded_file($tmp,$path))
        {
            echo "<img src='$path' />";
            $insert = $mysqli->query("CALL sp_uploadImage('".$path."')");
        }
        else 
        {
        echo 'invalid';
        echo '<pre>';
        print_r($_FILES);
        }   
    }

}
?>

最佳答案

您应该为您的 if 语句运行适当的条件,并提供备用路径,以防它没有按计划进行。

<?php
include("db_connect.php");
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'bmp');
$path = 'images/';
if(isset($_FILES['image']['name']) && $_FILES['image']['name'] != ''){
// check if file name is set and not empty
$img = $_FILES['image']['name'];
$tmp = $_FILES['image']['tmp_name'];
$ext = strtolower(pathinfo($img, PATHINFO_EXTENSION));
$final_image = rand(1000,1000000).$img;
    if(in_array($ext, $valid_extensions)){
        $path .= strtolower($final_image);
        if(move_uploaded_file($tmp,$path)){
            echo "<img src='$path' />";
            $insert = $mysqli->query("CALL sp_uploadImage('".$path."')");
        }else {
            echo 'Failed to move Files';
        }   
    }else{
        echo 'Not a Valid Extension';
    }
}else{
    echo 'No Files Found';
}
?>

这样它将返回适当的消息并让您知道出了什么问题。

关于php - 使用 move_uploaded_file 上传文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54069117/

相关文章:

php - 只允许大写和小写字母

mysql - Talend - tmysqlcommit 和 tmysqloutput - 错误

php - 更新 MySQL 字段时出错

php - 如何检查链接(a)提交按钮是否被点击

mysql - 如何获取 MySQL 数据库的创建日期?

mysql - 统计mySQL中某月内的数据

mysql - Laravel - 与父级在同一张表上的一对多

python - SQL Alchemy 绑定(bind)列名作为参数

php - 无需拥有 paypal 帐户,即可从支付网关为 paypal 的网站进行付款

php - 查询为两个唯一字段中的每一个选择具有特定 ID 的行并计算第三个字段的位置