我所要做的就是使用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'];
}
答案 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]
来解决您的问题。