为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
白板的微信 2023-05-26 16:23:53
我正在开发一个广告网站,任何人都可以上传 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);
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您可以在上传库的配置中将时间附加到“文件名”

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

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

$config['encrypt_name'] = TRUE;

然后

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


查看完整回答
反对 回复 2023-05-26
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

试试这个:-


$path = pathinfo($_FILES["userfile1"]["name"]);

$image_path = $path['filename'].'_'.time().'.'.$path['extension'];


查看完整回答
反对 回复 2023-05-26
?
喵喔喔

TA贡献1735条经验 获得超5个赞

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


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

}


查看完整回答
反对 回复 2023-05-26
  • 3 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信