2012-11-08 23 views
0

我想要做的就是使用ajax将文件上传到我的基于CodeIgniter的网站。但由于某些原因CodeIgniter不断给出“没有文件上传”的错误。我该如何解决这个问题?为什么在通过Ajax上传文件时,CodeIgniter会抛出“无文件上传”的错误?

这里是JavaScript:

<script type="text/javascript"> 
function updatebgimage() 
    { 
     regexp = /^[^[\]]+/; 
     var imgfile = document.getElementById("imagetoresize"); 
     var fileInputName = regexp.exec(imgfile['name']); 
     formdata = new FormData(); 
     formdata.append("imagetoresize",imgfile.files[0]); 
     $.ajax({ 
      url: "<?php echo site_url('uploadbgimage'); ?>", 
      type: "POST", 
      data: formdata, 
      dataType: "json", 
      processData: false, 
      contentType: false, 
      success: function (data) { 
        alert(data.message); 
      } 
     }); 
    } 
</script> 

这里是笨控制器被称为:

public function uploadbgimage() 
{ 
    $config['upload_path'] = './images/stores/'.$memberid.'/'; 
    $config['file_name'] = 'main_bg_image.jpg'; 
    $config['allowed_types'] = 'jpg|png'; 
    $config['overwrite'] = true;  
    $this->load->library('upload', $config); 
    $data = array(); 
    if (! $this->upload->do_upload("bgimage")) 
    { 
     $data['result'] = 'fail'; 
    $data['message'] = $this->upload->display_errors(); 
    } 
    else 
    { 
     $data['result'] = 'success'; 
    $data['message'] = 'file was uploaded fine'; 
    } 
    echo json_encode($data); 
} 

这里是HTML:

<form method="post" enctype="multipart/form-data"> 
    <input type="file" id="imagetoresize" name="imagetoresize" value="" class="field1" /> 
    <input type="button" onclick="updatebgimage()" value="UploadBGImage" /> 
</form> 
+0

好吧,我把在,它仍然没有工作... – user1664427

+0

我们的编辑相撞。给我一下......好的,修好了。 –

+0

雅它仍然不工作。 – user1664427

回答

1

它不应该是:

formdata.append("imagetoresize",imgfile.file); 

https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects

+0

雅我试图没有格式化图像文件字段,但也没有工作。 – user1664427

+0

表单数据是配对键值,关键应该是您的表单文件字段的名称,也不是文件的名称 – thedayofcondor

+0

亚我尝试与您的formdata.append更改,但仍然没有工作... – user1664427