我想做的就是使用 ajax 将文件上传到我基于 CodeIgniter 的网站。但是我无法在 Controller 中获取文件字段值。我收到类似“未定义索引:'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>
Javascript:
<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);
}
});
}
Controller :
function save_project_upload()
{
echo $upfile_name = $_FILES['file_1']['name'];
}
最佳答案
如果您执行 print_r( $_FILES )
,您是否获得了任何内容?
另请注意,IE8 及更早版本不支持此功能。
你也可以尝试这样做:
var formData = new FormData($('#yourformID')[0]);
编辑:
formData.append('file_1', $('input[id="file_1"]')[0].files[0]);
也可以通过将 [0]
添加到 DOM 元素来解决您的问题。
关于javascript - Formdata附加文件上传在codeigniter中不起作用,出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25907387/