Php 使用ajax codeigniter上传文件时始终为空
我在使用Ajax和Codeigniter上传文件时遇到问题。我已经读过base64编码我所需要的。但此代码在codeingiter和PHP的较低版本中工作。我不知道问题出在哪里。上传文件时,我总是有一个错误,您没有选择要上传的文件 有什么问题吗 提前谢谢 控制器Php 使用ajax codeigniter上传文件时始终为空,php,codeigniter,file-upload,jquery-file-upload,Php,Codeigniter,File Upload,Jquery File Upload,我在使用Ajax和Codeigniter上传文件时遇到问题。我已经读过base64编码我所需要的。但此代码在codeingiter和PHP的较低版本中工作。我不知道问题出在哪里。上传文件时,我总是有一个错误,您没有选择要上传的文件 有什么问题吗 提前谢谢 控制器 public function do_upload() { $this->load->library('upload'); //call codeigniter upload library
public function do_upload()
{
$this->load->library('upload'); //call codeigniter upload library
//upload configurations
$base_path = 'uploads';
$config['upload_path'] = $base_path;
$config['allowed_types']= 'jpg|jpeg|png|bitmap|pdf|docx|doc';
$config['max_size'] = 0;
$this->upload->initialize($config);
if(!$this->upload->do_upload('user_pic')){
//if upload does not meet the configuration settings throw error.
$error = array('error' => $this->upload->display_errors());
echo '<pre>';
print_r($error);
echo '</pre>';
}else {
//proceed upload
$data = array(
'uploaded_data' => $this->upload->data()
);
$file_name = $data['uploaded_data']['file_name'];
}
}
阿贾克斯
HTML视图
<form enctype="multipart/form-data" id="edit_prof" class="form-horizontal">
<div>
<img id="Thumbnail" src="noimg.jpg">
</div>
<fieldset>
<div class="form-group">
<label for="cpassword" class="col-sm-4 control-label">Change Photo</label>
<div class="col-sm-5">
<input type="file" id="user_pic" name="user_pic" class="form-control input-file" placeholder="Picture" style="font-size:15px;">
<input type="text" id="user_memo" name="user_memo" class="form-control input-file" style="font-size:15px;">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-8">
<input type="hidden" name="user_profile" id="user_profile" value="<?php //echo $profile_pic; ?>"/>
<span onclick="formSubmit();" class="btn btn-primary"><i class="glyphicon glyphicon-ok-sign"></i> Save Changes</span>
</div>
</div>
</fieldset>
</form>
我最近也有类似的情况。 我希望我的回答有点帮助 第一步。检查Jquery版本 我的案例:1.x.x不工作,因为POST/GET为空 plz最新版本下载 第二步。测试“$\u文件” //HTML
<script>
function formSubmit () {
var form = $("#edit_prof")[0];
var formData = new FormData (form);
var FileInfo = $ ("input[name='user_pic']")[0].files[0];
formData.append ("user_memo", $ ('input[name="user_memo"]').val ());
formData.append ("file", FileInfo);
$.ajax ({
url: "Codeigniter URL"
, type: "POST"
, dataType: 'text'
, cache: false
, processData: false
, contentType: false
, data: formData
, beforeSend: function ()
{
$('input[name="user_pic"]').hide();
$('input[name="user_memo"]').hide();
}
, success: function (getData)
{
console.log(saveImgUrl);
if(saveImgUrl.length > 0)
{
$('#Thumbnail').attr('src', saveImgUrl);
}
$('input[name="user_pic"]').show();
$('input[name="user_memo"]').show();
}
});
}
</script>
什么触发了JS的运行?它是在事件处理程序中还是在加载页面后立即运行?@Phil我编辑了我的jquery/ajaxcode@Phil系统不会过帐数据。为什么呢?
<form enctype="multipart/form-data" id="edit_prof" class="form-horizontal">
<div>
<img id="Thumbnail" src="noimg.jpg">
</div>
<fieldset>
<div class="form-group">
<label for="cpassword" class="col-sm-4 control-label">Change Photo</label>
<div class="col-sm-5">
<input type="file" id="user_pic" name="user_pic" class="form-control input-file" placeholder="Picture" style="font-size:15px;">
<input type="text" id="user_memo" name="user_memo" class="form-control input-file" style="font-size:15px;">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-8">
<input type="hidden" name="user_profile" id="user_profile" value="<?php //echo $profile_pic; ?>"/>
<span onclick="formSubmit();" class="btn btn-primary"><i class="glyphicon glyphicon-ok-sign"></i> Save Changes</span>
</div>
</div>
</fieldset>
</form>
<script>
function formSubmit () {
var form = $("#edit_prof")[0];
var formData = new FormData (form);
var FileInfo = $ ("input[name='user_pic']")[0].files[0];
formData.append ("user_memo", $ ('input[name="user_memo"]').val ());
formData.append ("file", FileInfo);
$.ajax ({
url: "Codeigniter URL"
, type: "POST"
, dataType: 'text'
, cache: false
, processData: false
, contentType: false
, data: formData
, beforeSend: function ()
{
$('input[name="user_pic"]').hide();
$('input[name="user_memo"]').hide();
}
, success: function (getData)
{
console.log(saveImgUrl);
if(saveImgUrl.length > 0)
{
$('#Thumbnail').attr('src', saveImgUrl);
}
$('input[name="user_pic"]').show();
$('input[name="user_memo"]').show();
}
});
}
</script>
public function imgUpload()
{
$POST_ALL = $this->input->post();
$FILE_ALL = $_FILES;
// Image Process - Start
// Image Process - End
// echo var_dump($POST_ALL);
echo var_dump($FILE_ALL);
}