PHP根据用户请求重命名或替换上传的文件

时间:2015-07-08 19:06:14

标签: php file-upload

我正在开发一个PHP应用程序,我必须在服务器上上传多个文件,我想要的是,当用户上传多个文件时,系统应该检查是否已经存在任何文件,如果是,则应该询问用户是否重命名文件或替换旧文件,如果用户选择重命名选项,则应重命名该文件,如果用户要求替换该文件,则应相应地进行。

直到现在我使用以下代码上传文件:

<?php
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
    $file_name = $_FILES['files']['name'][$key];
    $file_size =$_FILES['files']['size'][$key];
    $file_tmp =$_FILES['files']['tmp_name'][$key];
    $file_type=$_FILES['files']['type'][$key];  
    if($file_size > 2097152){
        $errors[]='File size must be less than 2 MB';
    }       
 //   $query="INSERT into upload_data (`USER_ID`,`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES('$user_id','$file_name','$file_size','$file_type'); ";
    $desired_dir="../reztrictedfolder/dir1/";
    if(empty($errors)==true){
        if(is_dir($desired_dir)==false){
            mkdir("$desired_dir", 0700);        // Create directory if it does not exist
        }
        if(file_exists("$desired_dir/".$file_name)==false){
            move_uploaded_file($file_tmp,"../reztrictedfolder/dir1/".$file_name);
        }else{                                  //rename the file if another one exist

             //rename($file_tmp,$new_dir) ; 
            list($txt,$ext) = explode(".", $file_name);

            $actual_image_name = time().substr(str_replace(" ", "_", $txt),     5).".".$ext;
         $new_dir="../reztrictedfolder/dir1/".$actual_image_name."_copy";
            move_uploaded_file($file_tmp,$new_dir);              
        }
      //  mysql_query($query);          
    }else{
           // print_r($errors);
    }

但它只检查文件是否已经存在并重命名,但我想让用户知道该文件已存在,是否要重命名文件或替换现有文件..?

0 个答案:

没有答案