提问者:小点点

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


我正在开发一个广告网站,任何人都可以上传3个图像。 所以我正在编码上传那3个图像,通过在他们的文件名前面添加时间戳,使他们唯一。 我使用codeigniter框架并附加下面的代码。

当我提交表单数据时,localhost服务器显示图像已正确保存,并提供了图像文件名的一些代码。 但问题是没有图像保存在相关的图像文件夹中的名称和我无法检索下一个预览广告页的图像。 我对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);

共2个答案

匿名用户

试试这个:-

$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
}