Php 识别为扩展名的文件名中的句点
我有一个管理员页面,可以将文件上传到我的数据库中,问题是每当文件名上有句点(.)时,脚本就会将其作为扩展名读取。例如:我上传了一个名为“flower1.1.jpg”的文件,它变成了“flower1.1”,没有jpg扩展名。 我的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
<?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']
。