上传图片不动

时间:2014-04-18 01:54:05

标签: php codeigniter image-uploading

我有这段代码:

$这 - >负载>库(' form_validation&#39);         $这 - > form_validation-> set_rules($这 - > credit_rules);

    $this->load->model('profile_m');
    $this->load->model('order_m');


        $config['upload_path'] = './uploads/user/';
        $config['allowed_types'] = 'gif|jpg|png|jpeg';
        $config['max_size'] = '2048';
        $config['max_width']  = '2650';
        $config['max_height']  = '2270';
        $config['overwrite'] = FALSE;
        $config['encrypt_name'] = FALSE;

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

        if ( ! $this->upload->do_upload('ktp')  )
        {
            $this->data->error = $this->upload->display_errors();

//          $this->load->view('upload_form', $error);
        }
        else
        {
            $data = array('upload_ktp' => $this->upload->data());
//          $this->load->view('upload_success', $data);
        }

没有出现任何警告/错误,提交成功但我上传的图片未显示在文件夹' ./ uploads / user /'我想知道为什么,我不知道如何检查我的upload_path是否正确。我希望有一些方向。但我确实从不同的功能上传了相同的代码,它正在工作,图像显示出来。

我目前使用localhost。

这是表格:

<?php if($this->session->flashdata('pesan')): ?>
<?php echo $this->session->flashdata('pesan'); ?>
<?php else:?>
<?php if(@$error){echo @$error;} ?>
<?php echo validation_errors(); ?>
<?php 
echo form_open_multipart(site_url(uri_string()));
echo form_label('KTP');
echo form_upload('ktp');
echo form_submit('submit','Pesan Sekarang');
?>

2 个答案:

答案 0 :(得分:2)

如果您的代码有效并且您不确定自己的路径,那么您可以像这样检查:

$upload_path = "./uploads/user/";

if(!file_exists($upload_path)) {
    mkdir($upload_path);
}

因为我尝试了你的代码并且它对我来说也是有效的路径,并且当我使用无效路径进行测试时,你会收到错误:上传路径似乎无效。作为错误消息

编辑1

我在这里测试它:

观点:

 <?php echo form_open_multipart(site_url().'/upload_test/uploadImg');?>
        <input type="file" name="ktp" title="Upload ktp" class="btn btn-lg btn-info m-b-sm col-sm-12">
        <input type="submit" value="Go Upload son !">


        <?php echo isset($the_file) ? 'Uploaded file : '.$the_file['file_name'] : ''; ?>
        <?php echo isset($error) ? $error : ''; ?>  
  <?php echo form_close(); ?>

控制器:

public function uploadImg() {

    $config['upload_path']   = './uploads/user';
    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['max_size']      = '2048';
    $config['max_width']     = '2650';
    $config['max_height']    = '2270';
    $config['overwrite']     = FALSE;
    $config['encrypt_name']  = FALSE;

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

    if( ! file_exists($config['upload_path']) ) {
         mkdir($config['upload_path']);
    }


    if ( ! $this->upload->do_upload('ktp')  ) {
        $data['error'] = $this->upload->display_errors();
        $this->load->view('welcome_message', $data);
    }
    else {
        $data['the_file'] = $this->upload->data();

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

编辑2

我的最后一个想法是不使用codeIgniter帮助程序。检查此here。 W3school PHP文件上传指南。

答案 1 :(得分:0)

您定义了一些约束,例如max_size,max_width,max_height。您是否检查过上传图片是否满足所有已定义的约束?