dow56114 2015-10-03 16:51
浏览 44
已采纳

php多文件上传,file_exist

I'm new to programming in PHP, and I'm trying to make a multiple file upload script, but I don't know how to check if the uploading files already exist! How can I do that? Can you help me? This is my code:

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<input type="submit" value="Upload">
</form>

foreach($_FILES['files']['name'] as $i => $name) {

    $name = $_FILES['files']['name'][$i];
    $size = $_FILES['files']['size'][$i];
    $type = $_FILES['files']['type'][$i];
    $tmp = $_FILES['files']['tmp_name'][$i];

    $explode = explode('.', $name);

    $ext = end($explode);

    $path = 'uploads/';
    $path = $path . basename( $explode[0] . time() .'.'. $ext);
    
    $errors = array();

    if(empty($_FILES['files']['tmp_name'][$i])) {
        $errors[] = 'Please choose at least 1 file to be uploaded.';
    }
    if(empty($errors)) {
        
        if(!file_exists('uploads')) {
            mkdir('uploads', 0777);
        }

        if(move_uploaded_file($tmp, $path)) {
            echo '<p>The file <b>'.$name.'</b> successfully uploaded</p>';
        }else {
            echo 'Something went wrong while uploading the file <b>'.$name.'</b>';
        }

    }else {
        foreach($errors as $error) {
            echo '<p>'.$error.'<p>';
        }
    }

}
?>

</div>
  • 写回答

3条回答 默认 最新

  • dongrui6787 2015-10-03 18:41
    关注

    file_exists return true if file is there in directory. So, you have to keep move_uploaded_file inside that if condition where file_exists you are checking.

    For more info, check this File Exist - W3 Schools

        <form action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="files[]" multiple>
            <input type="submit" value="Upload">
        </form>
    
        foreach($_FILES['files']['name'] as $i => $name)
        {
    
            $name = $_FILES['files']['name'][$i];
            $size = $_FILES['files']['size'][$i];
            $type = $_FILES['files']['type'][$i];
            $tmp = $_FILES['files']['tmp_name'][$i];
    
            $explode = explode('.', $name);
    
            $ext = end($explode);
    
            $path = 'uploads/';
            $path = $path . basename( $explode[0] . time() .'.'. $ext);
    
            $errors = array();
    
            if(empty($_FILES['files']['tmp_name'][$i])) {
                $errors[] = 'Please choose at least 1 file to be uploaded.';
            }
            if(empty($errors)) 
            {
    
                if(!file_exists($path))
                {
    
                    if(move_uploaded_file($tmp, $path)) 
                    {
                        echo '<p>The file <b>'.$name.'</b> successfully uploaded</p>';
                    }
                    else
                    {
                        echo 'Something went wrong while uploading the file <b>'.$name.'</b>';
                    }
                }
            }
            else
            {
                foreach($errors as $error)
                {
                    echo '<p>'.$error.'<p>';
                }
            }
    
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值