2017-05-21 209 views
-2

我创建了一个页面,可以将文件上传到我的数据库,但是当文件名有(。)时,它不能正确保存。比如我上传imagefile.50.jpg文件命名,它只是保存为image20.50php文件扩展名

<?php 

function upload_image() 
{ 
    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; 
    } 
} 

回答

2

要获得filename和文件的extension,您可以使用pathinfo,即:

$file = "some_dir/somefile.test.php"; # $_FILES['user_image']['name'] 
$path_parts = pathinfo($file); 
$fn = $path_parts['filename']; 
$ext = $path_parts['extension']; 
print $fn."\n"; 
print $ext; 

输出:

somefile.test 
php 
+0

我的文件被正确上传,我只是想上传连的文件名称,它应该上传,但不会承认任何其他作为最后一个扩展 – Jayar

+0

(。)(。)我真的没有跟着你。 –

+0

好吧,我有一个上传脚本https://pastebin.com/AGV0zBPt将文件上传到我的数据库,但每次文件名有句号(。)时,它都会识别为扩展名。例如,我有一个文件imagename2.1.jpg,当我上传它,它变成imagename2.1没有扩展名JPG。 – Jayar