允许上传原始文件名

时间:2018-05-19 10:00:03

标签: php

所以我使用的是树莓派,并希望将它用作我可以上传和下载任何类型文件的地方。

这是我的代码

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="upload">
</form>
<?php  
if(isset($_FILES['file'])) {
    $file = $_FILES['file'];

    $file_name = $file['name'];
    $file_tmp = $file['tmp_name'];
    $file_size = $file['size'];
    $file_error = $file['error'];

    $file_ext = explode('.', $file_name);
    $file_ext = strtolower(end($file_ext));

    $allowed = array('txt', 'jpg');

    if(in_array($file_ext, $allowed)) {
        if($file_error === 0) {
            if($file_size <= 1073741824) {

                $file_name_new = uniqid('', true) . '.' . $file_ext;
                $file_destination = './files/' . $file_name_new;

                if(move_uploaded_file($file_tmp, $file_destination)) {
                    echo $file_destination;
                }
            }
        }
    }
}
?>
</body>
</html>

它工作得很好但是当上传的文件我得到的是随机文件名而不是原始名称我怎么能保持上传的原始文件名不是随机名称!

2 个答案:

答案 0 :(得分:0)

$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_destination = './files/' . $file_name_new;

以上是您定义文件的新名称。只需将文件命名为($file_name变量中的文件)。

//$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_name_new = $file_name;
$file_destination = './files/' . $file_name_new;

此时$file_name_new与你可以直接写的$file_name相同:

$file_destination = './files/' . $file_name;

答案 1 :(得分:0)

在您的代码中,请注释以下行:

//$file_name_new = uniqid('', true) . '.' . $file_ext;

然后,将每个名为$ file_name_new的变量替换为$ file_name