【问题标题】:image upload problem -> Errors and success messages CI [closed]图片上传问题->错误和成功消息CI [关闭]
【发布时间】:2011-04-24 01:45:56
【问题描述】:

我有以下代码女巫我刚刚发现我可以上传任何类型的文件(.png.jpg .txt 等),但我也不确定是否放置 $data[success] = TRUE 以便在页面显示后显示已重新加载并且功能已运行。如果出现错误,我该如何处理错误消息?

控制器:

<?php

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Addimage extends CI_Controller { 

    function __construct(){ 
    parent::__construct(); 
    } 
    function index() { 
    if(!$this->session->userdata('logged_in')) { 
        redirect('admin/home'); 
    } 
    // Main Page Data 
    $data['cms_pages'] = $this->navigation_model->getCMSPages(); 
    $data['title'] = 'Add Gallery Image'; 
    $data['content'] = $this->load->view('admin/addimage',NULL,TRUE); 

    $this->load->view('admintemplate', $data); 

    //Set Validation 
    //$this->form_validation->set_rules('userfile', 'userfile', 'trim|required'); 
    $this->form_validation->set_rules('description', 'Description', 'trim|required'); 

    if($this->form_validation->run() === TRUE) { 

    //Set File Settings 
    $config['upload_path'] = 'includes/uploads/gallery/'; 
    $config['allowed_types'] = 'jpg|png'; 
    $config['remove_spaces'] = TRUE;
    $config['overwrite'] = TRUE;
    $config['max_size'] = '100'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768'; 

    $this->load->library('upload', $config); 
    if(!$this->upload->do_upload()) {

    $error = array('imageError' => $this->upload->display_errors());
    }
    else{
    $data = array('upload_data' => $this->upload->data());
    $data['success'] = TRUE;
    $config['image_library'] = 'GD2';
    $config['source_image'] = $this->upload->upload_path.$this->upload->file_name;
    $config['new_image'] = 'includes/uploads/gallery/thumbs/';
    $config['create_thumb'] = 'TRUE';
    $config['thumb_marker'] ='_thumb';
    $config['maintain_ratio'] = 'FALSE';
    $config['width'] = '200';
    $config['height'] = '150';

    $this->load->library('image_lib', $config);
    $this->image_lib->resize();
    }

    $file_info = $this->upload->data();

    $data = array(   
        'description' => $this->input->post('description', TRUE), 
        'imagename' => $file_info['file_name'],
    'thumbname' =>$file_info['raw_name'].'_thumb'.$file_info['file_ext'] 
        ); 
    $this->image_model->addImage($data);

    } 
 } 

}

查看:

<?php
//Setting form attributes
$formAddImage = array('id' => 'addImage', 'name' => 'addImage');
$imageImage = array('id' => 'userfile', 'name' => 'userfile', 'placeholder' => 'File Location*');
$imageDescription = array('id' => 'description','name' => 'description','placeholder' => 'Image Description*');

if($success == TRUE) {
echo '<section id = "validation">Image Uploaded</section>'; 
}


?>


<section id = "validation"><?php echo validation_errors();?></section>


<?php
echo form_open_multipart('admin/addimage', $formAddImage);
echo form_fieldset();
echo form_upload($imageImage);
echo form_textarea($imageDescription);
echo form_submit('submit','Submit');
echo form_fieldset_close();
echo form_close();
?>

【问题讨论】:

    标签: php codeigniter validation


    【解决方案1】:
    if(!$this->upload->do_upload()) {
    
        $status = array('imageError' => $this->upload->display_errors());
    }
    else 
    {
        $status = 'Success message'; // or just true
        // etc
    }
    

    那么在你看来:

    if($status==TRUE) 
    { 
        // your success
    } 
    else 
    {
       // aw..somethings's gone wrong, print_r($status);
    {
    

    所以基本上使用一个变量。

    这也是何时使用 flashdata 的一个很好的例子,它正是用于这些目的。

    if(!$this->upload->do_upload()) 
    {
        $this->session->set_flashdata('message', 'Sorry, error...');
    } 
    else 
    {
        $this->session->set_flashdata('message', 'Success!');
    }
    

    如果需要,您当然可以将您的数据数组传递给set_flashdata

    【讨论】:

    • 谢谢,我还是没有得到白页
    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2020-06-11
    • 1970-01-01
    • 2016-12-30
    • 2016-12-14
    相关资源
    最近更新 更多