Formdata附加文件上传在codeigniter中无效,获取错误

时间:2014-09-18 08:07:50

标签: javascript php jquery ajax codeigniter

我所要做的就是使用ajax将文件上传到我的基于CodeIgniter的网站。但是我无法在控制器中获取文件字段值。我收到的消息如“Undefined index:'file_1'”

如何解决这个问题?

表格

<form method="post" enctype="multipart/form-data">
 <input type="file" id="file_1" name="file_1" value="" class="field1" /> 
 <input type="button" onclick="up_img()" value="Upload" /> 
</form>

Javscript:

<script type="text/javascript">
function up_img()
{   
   formdata = false;
    var imgfile = document.getElementById("file_1"); 
    formdata = new FormData(); 
    formdata.append("file_1",imgfile.files[0]);
    $.ajax({  
        url: "<?php echo base_url(); ?>index.php/save_project_upload/",  
        type: 'POST',   
        data: formdata,
        processData: false,
        contentType: false,
        success: function (data) {  
                alert(data); 
        }  
    });  
} 

控制器:

 function save_project_upload()
 {

echo $upfile_name           =       $_FILES['file_1']['name'];

 }

1 个答案:

答案 0 :(得分:4)

如果你做print_r( $_FILES ),你得到任何内容吗?

另外,请注意IE8及更早版本不支持此功能。

您也可以尝试:

var formData = new FormData($('#yourformID')[0]);     

编辑:

formData.append('file_1', $('input[id="file_1"]')[0].files[0]); 

也可以通过向DOM元素添加[0]来解决您的问题。