我正在开发一个广告网站,任何人都可以上传 3 张图片。 因此,我正在编码以通过在文件名前添加时间戳来上传这 3 张图像,以使它们唯一。我使用代码点火器框架并附加下面的代码。
当我提交表单数据时,本地主机服务器显示图像已正确保存,其中包含图像文件名的一些代码。但问题是该名称的相关图像文件夹中没有保存图像,我无法在下一个预览广告页面中检索该图像。 我对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);
您可以在上传库的配置中将时间附加到"文件名">
$config['file_name'] = time().$_FILES['userfile1']['name'];
或者,如果您希望所有文件的唯一名称,只需添加
$config['encrypt_name'] = TRUE;
然后
$this->load->library('upload', $config);
试试这个:-
$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
}