【发布时间】:2015-12-11 14:53:45
【问题描述】:
我正在查看文件上传表单的以下代码:
<form method="post" action="<?=site_url('api/do_upload')?>" enctype="multipart/form-data" id="upload_photo" />
<input type="file" name="userfile" size="20" class="btn btn-primary" /><br />
<input type="submit" value="upload" class="btn btn-warning btn-xs" />
</form>
JS中的事件捕获:
$("#upload_photo").submit(function(evt) {
evt.preventDefault();
var url = $(this).attr('action');
var postData = $(this).serialize();
$.post(url, postData, function(o){
if(o.result == 1) {
Display.success(o.output);
}
else
{
Display.error(o.error);
}
},'json');
});
模型,我正在处理文件上传:
public function do_upload()
{
$this->_require_login();
$this->output->set_content_type('application_json');
$config['upload_path'] = 'C:\xampp2\htdocs\kedb\public\img\profile';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '10000';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$config['file_name'] = $this->session->userdata('user_id');
$config['overwrite'] = TRUE;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('userfile'))
{
$this->output->set_output(json_encode([
'result' => '0',
'output' => $this->upload->display_errors()
]));
}
else
{
$this->output->set_output(json_encode([
'result' => '1',
'output' => 'File Uploaded Successfully'
]));
return false;
//$data = array('upload_data' => $this->upload->data());
//$this->load->view('upload_success', $data);
}
}
当我点击“上传”按钮时,出现以下错误:
{"result":"0","output":"<p>You did not select a file to upload.<\/p>"}
如果我删除 <form> 标签中的 id="upload_photo" ,它就可以工作了。仅当我在<form> 中添加 id 属性时才会出错。
我可能错过了什么或做错了什么。有人可以请我出去吗?
【问题讨论】:
标签: json codeigniter file-upload