私はテキストボックスとファイルアップロードのフォームを持っています。ユーザーがボタンをクリックしたとき。 テキストボックス値およびファイルアップロード名がデータベースに保存され、ファイルがサーバーにアップロードされます。私はAJAXを使ってそれを経験したことはありません。だから、どんな助けも大歓迎です。これは私のAJAXあるCodeIgniter 3.0でAJAXを使ってファイルをアップロードするには?
<form enctype="multipart/form-data" accept-charset="utf-8" name="f_complaint" id="f_complaint">
<input type="text" name="i_complaint" id="id_complaint" class="cl_complaint" />
<input type="file" name="i_file" id="id_file" class="cl_file" />
<input type="button" id="btn_upl" value="Save your complaint" class="btn btn-primary" />
</form>
:
は、これが私のフォームです
<script src="<?php echo base_url('assets/inspinia/js/jquery-2.1.1.js'); ?>"></script>
<script src="<?php echo base_url('assets/jquery-ui/jquery-ui.js'); ?>"></script>
<script type="text/javascript">
$(document).ready(function() {
var url = "<?php print base_url(); ?>complaint/saveadd";
$('#btn_upl').on('click', function() {
var formData = new FormData($(this).parent('form')[0]);
//alert(url);
$.ajax({
url : url,
type : 'POST',
data : formData,
success : function (returndata) {
alert(returndata);
}
});
});
});
</script>
これは私のコントローラである:
public function saveadd() {
$config['upload_path'] = FCPATH."assets/uploads/";
$config['max_size'] = '307200';
$config['file_name'] = "FILE - ".$_FILES['i_file']['name'];;
$config['overwrite'] = TRUE;
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (! $this->upload->do_upload('i_file')) {
//return false;
redirect('app/');
} else {
redirect('complaint/add');
}
}
コードで何が悪いのでしょうか?アラートでさえ発砲されません。プラグインを使用したくありません
コンソールにエラーがありますか?私はそれがフルパスを必要としていると理解している限り、URLは有効ではない –
@SergioAlenエラーはありません – Shota
他のプロジェクトでも同じURLを使用しています(アップロードファイルもajaxも使用していません)、うまく動作しています – Shota