1

テキスト入力と 2 つのファイルを view->controller->model から渡したいのですが、このコードを実行すると、常に「アップロードするファイルが選択されていません」というエラーが表示されます。

ビュー- このビューでは、テキストの入力と、「myFile」および「myDoc」という名前のロード ファイルの 2 つの入力を取得します。

              <form action="<?=site_url('blog_maintain/save')?>" method = "post" enctype="multipart/form-data"><li class="field" style="display:inline"><p><i class = "icon-docs"></i>&nbsp;หัวข้อ : 
              <input class="text input" type="text" placeholder="Topic Input" name = "topic" id ="topic" required="required">
              </p></li>
              <li class="field" style="display:inline"><p><i class = "icon-menu"></i>&nbsp;คำอธิบาย : 
              <input class="text input" type="text" placeholder="Short Description" name = "desc" id = "desc" required="required">
              </p></li>
              <li class="field" style="display:inline"><p><i class = "icon-picture"></i>&nbsp;รูปภาพ :
              ******<input type="file" name = "myFile" id = "myFile" required="required" accept="image/*">******
              </p></li>
              <li class="field" style="display:inline"><p><i class = "icon-attach"></i>&nbsp;ไฟล์แนบ : 
              ***<input type="file" name = "myDoc" id = "myDoc" accept=".doc,.docx,.pdf,.txt,.xls,.xlsx,.ppt,.pptx">***
              </p></li>               
              <li class="field" style="display:inline"><p><i class = "icon-doc-text"></i>บทความ : 
              <textarea class="input textarea" placeholder="Description" rows="5" name = "text" id = "text" required="required"></textarea>
              </p></li>
              <input class="medium btn pill-left default push_seven two columns" type="submit" value = "upload" onclick = "return check();">
              <input class="medium btn pill-right default two columns" type="Reset" value = "Reset">

モデル- このモデルでは、$_POST をコントローラの save_blog() に渡します

public function save(){
    $this->load->model('blog_maintain_helper');
    $data['result'] = $this->blog_maintain_helper->save_blog();
    $this->loadView('blogMaintainView',$data);
}

コントローラ

function save_blog(){           
    $config =  array(
        'upload_path'     => 'server_path',
        'allowed_types'   => "gif|jpg|png|jpeg|pdf|doc|xml",
        'overwrite'       => TRUE,          
    );
    get_instance()->load->library('upload', $this->config);
    if($this->upload->do_upload())          
    {
        echo "file upload success";             
    }           
    else            
    {
        echo $this->upload->display_errors();           
    }       
}
4

4 に答える 4

3

codeigniter では、アップロードされるデフォルトのファイル名はuserfileです。別の名前でファイルをアップロードする場合は、それを do_upload メソッドに渡す必要があります

function save_blog(){ 
    $config = array( 'upload_path' => 'server_path',
                     'allowed_types' => "gif|jpg|png|jpeg|pdf|doc|xml",
                     'overwrite' => TRUE, );

    get_instance()->load->library('upload', $this->config); 
    if($this->upload->do_upload('myDoc')) { 
        echo "file upload success"; 
    } else { 
        echo $this->upload->display_errors(); 
    } 
}
于 2013-09-13T21:40:37.883 に答える
0
<input type="file" name = "myDoc" id = "myDoc" accept=".doc,.docx,.pdf,.txt,.xls,.xlsx,.ppt,.pptx">

input type='file' name (myDoc) を次のように使用します

$this->upload->do_upload("myDoc")

于 2013-09-13T23:20:21.920 に答える
0

do_upload は「userfile」と呼ばれるフォームフィールドを想定していますが、これはあなたの場合ではありません。別のフィールド名を設定するには、それをパラメーターとして渡す必要があります。

$field_name = "some_field_name";
$this->upload->do_upload($field_name)
于 2013-09-13T21:33:50.063 に答える