我正在尝试在codeigniter中上传图片,但我遇到了问题,$ this-> upload-> do_upload('imgname')。如果条件没有执行,只有elese执行并显示错误信息是'你没有选择要上传的文件'。但是在删除所有代码中的表单上传时,它会完美执行....
控制器:
public function add_news()
{
$post = $this->input->post();
unset($post['submit']);
$this->load->model('Adminmodel','addNews');
if(!is_dir('uploads'))
{
mkdir(base_url().'uploads',0777,true);
}
if(!is_dir('uploads/news'))
{
mkdir('uploads/news',0777,true);
}
$config = [
'upload_path'=>'uploads/news',
'allowed_types'=>'png|jpg|jpeg|gif',
'encrypt_name'=>'0777',
];
$this->load->library('upload', $config);
if($this->upload->do_upload('newsimg'))
{
$data = $this->upload->data();
$file_path = base_url().'uploads/news/'.$data["raw_name"].$data["file_ext"];
$post['newsimg'] = $file_path;
//$this->revEdit->reg_info($id,$post);
$post['posted'] = date('d-m-Y');
$this->addNews->store_news($post);
$this->session->set_flashdata('newsAlert','Yeh! News Added Successfully.');
redirect('Admin/news');
}
else
{
$newsdata = $this->addNews->news_list();
$upload_error = $this->upload->display_errors();
$this->load->view('Admin/news',compact('upload_error','newsdata'));
}}
视图:
<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<label>News Heading</label>
<?=form_input(['name'=>'title','class'=>'form-control','placeholder'=>'Enter News Title','value'=>set_value('title')])?>
</div>
<div class="form-group">
<label>News Details</label>
<?=form_textarea(['name'=>'body','class'=>'form-control','placeholder'=>'Enter News Body','value'=>set_value('body')])?>
</div>
<div class="form-group col-sm-3">
<div class="fileUpload btn btn-primary" data-toggle="tooltip" data-placement="top" title="PDF file only">
<span><i class="fa fa-cloud-upload" aria-hidden="true"></i> Select File <span id="Percentage" class="percentage text-center"></span></span>
<?=form_upload(['name'=>'newsimg','class'=>'upload','id'=>'file1','onchange'=>'loadPdf(event)'])?>
</div>
</div>
<div class="col-sm-12">
<div id="myProgress" class="progress">
<div id="myBar" class="bar progress-bar" role='progressbar'>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<?=form_reset('reset','Reset',['class'=>'btn btn-md btn-primary'])?>
<?=form_submit('submit','Post',['class'=>'btn btn-md btn-success'])?>
</div>
<?=form_close()?>
模型:
public function store_news($array)
{
return $this->db->insert('tbl_news', $array);
}
答案 0 :(得分:1)
您需要使用form_open_multipart
代替form_open
,以便{/ 1}}可以在表单中添加
更改
enctype
为:
<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
答案 1 :(得分:1)
您没有使用with codecs.open ("F:\\New folder\\output%i_%i.txt" % (i,j), "w","utf-8") as text_file:
试试这个
enctype='multipart/form-data'
答案 2 :(得分:1)
您需要使用multipart / form-data进行文件上传。 因此,请使用form_open_multipart而不是form_open。
echo form_open_multipart(&#39; Admin / add_news&#39;);
答案 3 :(得分:-1)
function upload_add($ name){$ this-&gt; load-&gt; helper('form'); $ config ['upload_path'] ='upload / add_image /'; $ config ['allowed_types'] ='gif | jpg | png'; $ config ['max_size'] ='30000'; $ config ['max_width'] ='102400'; $ config ['max_height'] ='76800'; $ this-&gt; load-&gt; library('upload',$ config); $这 - &GT; upload-&GT;初始化($配置); if(!$ this-&gt; upload-&gt; do_upload($ name)){$ data = array('msg'=&gt; $ this-&gt; upload-&gt; display_errors()); } else {$ data = array('msg'=&gt;“success”); $ databasea ['upload_data'] = $ this-&gt; upload-&gt; data(); $这 - &GT;负载&GT;库( 'image_lib'); return $ databasea ['upload_data'] ['file_name']; } return''; }