上传图像文件时添加时间戳不起作用

adding timestamp while uploading image file is not working

我正在开发一个任何人都可以上传 3 张图片的广告网站。 因此,我正在编码以通过在文件名前添加时间戳来上传这 3 张图像,使它们独一无二。我使用 codeigniter 框架并附上下面的代码。

当我提交表单数据时,本地主机服务器显示图像已正确保存,并带有一些关于图像文件名的代码信息。但问题是没有以该名称保存在相关图像文件夹中的图像,我无法在下一个预览广告页面中检索该图像。 我不太了解 php 或 codeignitor。非常感谢您的帮助。

        $config['upload_path'] = './assets/images/adsimages';
        $config['allowed_types']        = 'gif|jpg|png';
        $config['max_size']             = 5120;

        $this->load->library('upload',$config);
        $this->upload->initialize($config);

        if (!$this->upload->do_upload()){
            $errors = array('error' => $this->upload->display_errors());
            $post_image = 'no_image.jpg';
        }
        else {
            $data = array('upload_data' => $this->upload->data());

            $post_image1 = time().$_FILES['userfile1']['name'];
            $post_image2 = time().$_FILES['userfile2']['name'];
            $post_image3 = time().$_FILES['userfile3']['name'];
        }         
        $result = $this->post_model->adregister($post_image1,$post_image2,$post_image3);

试试这个:-

$path = pathinfo($_FILES["userfile1"]["name"]);
$image_path = $path['filename'].'_'.time().'.'.$path['extension'];

我已经为您的代码编写了一个可能的解决方案。您还没有共享完整的代码,因此您必须自己填补空白,并且可能会在这里或那里进行一些更改;必要时会提及评论。看看对你有没有帮助。

public function your_function_name(){
    // your-code
    // your-code

    // check if file is uploaded in field1
    if(!empty($_FILES['userfile1']['name'])){ 

        // call function to upload file
        $userfile1 = $this->upload_file('userfile1'); 
    }

    // check if file is uploaded in field2
    if(!empty($_FILES['userfile2']['name'])){ 

        $userfile2 = $this->upload_file('userfile2');
    }

    // check if file is uploaded in field3
    if(!empty($_FILES['userfile3']['name'])){ 

        $userfile3 = $this->upload_file('userfile3');
    }

    $result = $this->post_model->adregister($userfile1, $userfile2, $userfile3);
}

// function to upload file
function upload_file($filename){

    $config['file_name']     = time().$_FILES[$filename]['name']; // append time to filename
    $config['upload_path']   = './assets/images/adsimages';
    $config['allowed_types'] = 'gif|jpg|jpeg|png|GIF|JPG|PNG|JPEG';
    $config['max_size']      = 5120;

    $this->load->library('upload', $config);
    $this->upload->initialize($config);

    $uploaded = $this->upload->do_upload($filename);

    if ( ! $uploaded ){

        $error = array('error' => $this->upload->display_errors());
        $file  = 'no_image.jpg'; // default file

    }else{

        $upload_data = $this->upload->data();
        $file        = $upload_data['file_name']; // uploaded file name
    }

    return $file; // return filename
}

您可以在上传库的配置中将时间附加到'filename'

$config['file_name'] = time().$_FILES['userfile1']['name'];

或者如果您想要所有文件的唯一名称,只需添加

$config['encrypt_name'] = TRUE;

然后

$this->load->library('upload', $config);