我尝试使用ajax在codeignitier中上传图片 问题在于ajax不会向控制器发送任何数据 这是我的代码:
$("#file-input").change(function(e) {
$.ajax({
url: "<?php echo base_url(); ?>ControllerEditor/uploadImageUserAjax",
type: "POST",
data: new FormData(this),
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data)
{
if(data)
{
console.log(data);
}
// $("#targetLayer").html(data);
},
error: function()
{
}
});//end ajax
}); //end submit
&#13;
<form id="form-uploadImage" action="ControllerEditor/uploadImageUserAjax" method="post" enctype="multipart/form-data">
<div class="image-upload">
<label for="file-input">
<img src="asset/globalimage/addIcon.png"/>
</label>
<input id="file-input" name='file-input' type="file"/><br>
Add Image
</div>
</form>
&#13;
答案 0 :(得分:1)
替换以下代码
data: new FormData(this),
使用
data : new FormData($('#form-uploadImage')[0]),
我希望这会对你有所帮助。
谢谢。答案 1 :(得分:0)
你可以试试这个!希望对你有所帮助
<form enctype="multipart/form-data" accept-charset="utf-8" name="formname" id="formname" method="post" action="">
<div class="image-upload">
<label for="file-input">
<img src="asset/globalimage/addIcon.png"/>
</label>
<input id="file-input" name='file-input' type="file"/><br>
Add Image
</div>
</form>
function uploadImage() {
if (typeof FormData !== 'undefined') {
// send the formData
var formData = new FormData( $("#formID")[0] );
$.ajax({
url : baseUrl + 'uploadImage', // Controller URL
type : 'POST',
data : formData,
async : false,
cache : false,
contentType : false,
processData : false,
success : function(data) {
successFunction(data);
}
});
} else {
message("Your Browser Don't support FormData API! Use IE 10 or Above!");
}
}