Detailed example of how to redefine the name of an uploaded file

怪我咯
Release: 2023-03-07 17:46:01
Original
2785 people have browsed it

When uploading files, you need to specify the upload file path. However, if you face different files uploaded by a large number of users, it is inevitable that there will be the possibility of duplicate names. This will cause file replacement, resulting in file loss, so the upload file Name redefinition is very important. This chapter will take you through it. How to define the name of the uploaded file?

First we use the strstr() function to intercept the name of the uploaded file and obtain the suffix of the uploaded file.

Then obtain the current timestamp of the system through the time() function and redefine the name of the uploaded file

Use the move_uploaded_file() function to upload the file.

Before executing file upload, in order to prevent potential attacks and illegal management of files that cannot be interacted with through scripts, the is_uploaded_file() function should be used to determine whether the specified file was uploaded through HTTP POST. If so, then returns a true.

is_uploaded_file() function

is_uploaded_file() function determines whether the specified file is uploaded through HTTP POST. Its syntax is as follows:

is_uploaded_file(filename)
Copy after login

Parameter filename A variable similar to $_FILES['filename']['tmp_name'] must be specified. The file name uploaded from the client cannot be used.$_FILES['filename']['name']

Detailed example of how to redefine the name of an uploaded fileUsing the is_uploaded_file() function to judge uploaded files can ensure that malicious users cannot trick scripts into accessing inaccessible files, such as /etc/passwd.

move_uploaded_file() function

The move_uploaded_file() function uploads a file to the specified location in the server. Returns true if successful. Otherwise, return false, and the syntax is as follows

move_uploaded_file(filename,destination)
Copy after login

The parameter filename specifies the temporary file name of the uploaded file, that is, $_FILES[tmp_name]; the parameter destination refers to the new path and name saved after the file is uploaded. If the parameter filename is not a legal uploaded file, no operation will occur,

move_uploaded_file() will return false; if the parameter filename is a legal uploaded file, but for If it cannot be moved for some reason, no operation will occur. move_uploaded_file() will return False and a warning message will be issued.

Finally use the rand function and use the random integer it randomly generates as the new name of the uploaded file.

Application Example

This example redefines the name of the uploaded file, select the name of the file to be uploaded, and click "Upload" button, the file will be uploaded to the upfile folder under the local path specified in the program, and the file name will be redefined.

Detailed example of how to redefine the name of an uploaded file

##The key code for this example is as follows:

<?PHP
header("content-type:text/html;charset=utf-8");
if(!empty($_FILES[up_picture][name])){                                       //判断上传文件是否为空
    if($_FILES[&#39;up_picture&#39;][&#39;error&#39;]>0){                                    //判断文件是否可以上传到服务器
        echo "上传错误";
        switch($_FILES[&#39;up_picture&#39;][&#39;error&#39;]){
            case 1:
                echo "上传文件大小超出配置文件规定值";
                break;
            case 2:
                echo "上传文件大小超出表单中约定值";
                break;
            case 3:
                echo "上传文件不全";
                break;
            case 4:
                echo "没有上传文件";
                break;
        }
    }else{
        if(!is_dir("./upfile/")){                                           //判断指定目录是否存在
            mkdir("./upfile/");                                             //创建目录
        }
        $path=&#39;./upfile/&#39;.time().strstr($_FILES[&#39;up_picture&#39;][&#39;name&#39;],&#39;.&#39;);//定义文件名称和存储位置
        if(is_uploaded_file($_FILES[&#39;up_picture&#39;][&#39;tmp_name&#39;])){           //判断是否通过HTTP POST上传的
            if(!move_uploaded_file($_FILES[&#39;up_picture&#39;][&#39;tmp_name&#39;],$path)){       //执行上传
                echo "上传失败";
            }else{
                echo "文件".time().$_FILES[&#39;up_picture&#39;][&#39;name&#39;]."上传成功,大小为:".$_FILES[&#39;up_picture&#39;][&#39;size&#39;];
            }
        }else{
            echo "上传文件".$_FILES[&#39;up_picture&#39;][&#39;name&#39;]."不合法!";
        }
    }
}
?>
Copy after login

Defining the name of the uploaded file must be an indispensable function in the file upload program. Through it, it can avoid the replacement of files with the same name, which may lead to the existence of many files with the same content. For more information, please pay attention to Detailed example of how to redefine the name of an uploaded filePHP file processing topic

[Related article recommendations]

PHP file upload-detailed explanation of the use of the move_uploaded_file() function

The above is the detailed content of Detailed example of how to redefine the name of an uploaded file. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template