Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 识别为扩展名的文件名中的句点_Php_Mysql_File Upload - Fatal编程技术网

Php 识别为扩展名的文件名中的句点

Php 识别为扩展名的文件名中的句点,php,mysql,file-upload,Php,Mysql,File Upload,我有一个管理员页面,可以将文件上传到我的数据库中,问题是每当文件名上有句点(.)时,脚本就会将其作为扩展名读取。例如:我上传了一个名为“flower1.1.jpg”的文件,它变成了“flower1.1”,没有jpg扩展名。 我的php上载脚本: <?php function upload_file() { if(isset($_FILES["user_image"])) { $extension = explode('.', $_FILES['user_i

我有一个管理员页面,可以将文件上传到我的数据库中,问题是每当文件名上有句点(.)时,脚本就会将其作为扩展名读取。例如:我上传了一个名为“flower1.1.jpg”的文件,它变成了“flower1.1”,没有jpg扩展名。 我的php上载脚本:

<?php

function upload_file()
{
    if(isset($_FILES["user_image"]))
    {
        $extension = explode('.', $_FILES['user_image']['name']);
        $new_name = $extension[0] . '.' . $extension[1];
        $destination = './upload/' . $new_name;
        move_uploaded_file($_FILES['user_image']['tmp_name'], $destination);
        return $new_name;
    }
}

function get_image_name($user_id)
{
    include('db3.php');
    $statement = $connection->prepare("SELECT image FROM users1 WHERE id = '$user_id'");
    $statement->execute();
    $result = $statement->fetchAll();
    foreach($result as $row)
    {
        return $row["image"];
    }
}

function get_total_all_records()
{
    include('db3.php');
    $statement = $connection->prepare("SELECT * FROM users1");
    $statement->execute();
    $result = $statement->fetchAll();
    return $statement->rowCount();
}

?>

你为什么还要找分机?你只是将它们再次分解和浓缩在一起:

function upload_file()
{
    if ( isset($_FILES["user_image"]) )
    {
        $destination = './upload/' . $_FILES['user_image']['name'];
        move_uploaded_file($_FILES['user_image']['tmp_name'], $destination);
        return $_FILES['user_image']['name'];
    }
}
作为警告,请检查以确保您的用户仅上载图像:

function upload_file()
{
    static $valid_formats = array(
        'image/jpeg',
        'image/png',
        'image/gif'
    );

    if ( isset($_FILES['user_image']) )
    {
        $finfo = new finfo(FILEINFO_MIME_TYPE);
        $mime = $finfo->file($_FILES['user_image']['tmp_name']);

        if ( !in_array($mime, $valid_formats) )
        {
            throw new RuntimeException('Invalid file format.');
        }

        $destination = './upload/' . $_FILES['user_image']['name'];
        move_uploaded_file($_FILES['user_image']['tmp_name'], $destination);
        return $_FILES['user_image']['name'];
    }
}

我尝试了你的第一个代码,但它不起作用,它无法识别$new\u名称;function@AppleJohn是的,
$new\u name
已经不存在了。我的一个小错误。只需返回
$\u文件['user\u image']['name']