如何使用codeignitier上传ajax文件

时间:2017-02-13 13:32:18

标签: javascript jquery html ajax codeigniter

我尝试使用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;
&#13;
&#13;

2 个答案:

答案 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!");
    }   
}