Javascript &引用;您没有选择要上载的文件&引用;使用ajax上载图像时出现此错误
我正在使用CodeIgniter和jQueryAjax。我想用ajax上传图像。但它会显示一个错误,如您没有选择要上载的文件。 在这里,我编写了jQuery:Javascript &引用;您没有选择要上载的文件&引用;使用ajax上载图像时出现此错误,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我正在使用CodeIgniter和jQueryAjax。我想用ajax上传图像。但它会显示一个错误,如您没有选择要上载的文件。 在这里,我编写了jQuery: jQuery(document).on('submit','signup_form',function() { //调试器; var data=jQuery(this).serialize(); jQuery.ajax({ 键入:“POST”, url:“”, 数据:数据, 成功:功能(数据) { jQuery(“.result”).h
jQuery(document).on('submit','signup_form',function()
{
//调试器;
var data=jQuery(this).serialize();
jQuery.ajax({
键入:“POST”,
url:“”,
数据:数据,
成功:功能(数据)
{
jQuery(“.result”).html(数据);
}
});
返回false;
});代码>
上传照片
提交
试试这个:
$('#upload').on('click', function() {
var file_data = $('#pic').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url : 'upload.php', // point to server-side PHP script
dataType : 'text', // what to expect back from the PHP script, if anything
cache : false,
contentType : false,
processData : false,
data : form_data,
type : 'post',
success : function(output){
alert(output); // display response from the PHP script, if any
}
});
$('#pic').val(''); /* Clear the file container */
});
jQuery(document).on('submit', '#signup_form', function()
{
//debugger;
var data = new FormData($('#signup_form')[0]);
jQuery.ajax({
type : 'POST',
url : '<?php echo base_url()."front/ajax_register"; ?>',
data : data,
processData: false,
contentType: false,
success : function(data)
{
jQuery(".result").html(data);
}
});
return false;
});
Php:
这将上载文件
注意:根据CI方法更改代码
var data = jQuery(this).serialize();
此
指的是文档
正如我所说,问题可能在于发送到后端的数据。如果您想提交带有输入文件的AJAX,请使用FormData
试试这个:
$('#upload').on('click', function() {
var file_data = $('#pic').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url : 'upload.php', // point to server-side PHP script
dataType : 'text', // what to expect back from the PHP script, if anything
cache : false,
contentType : false,
processData : false,
data : form_data,
type : 'post',
success : function(output){
alert(output); // display response from the PHP script, if any
}
});
$('#pic').val(''); /* Clear the file container */
});
jQuery(document).on('submit', '#signup_form', function()
{
//debugger;
var data = new FormData($('#signup_form')[0]);
jQuery.ajax({
type : 'POST',
url : '<?php echo base_url()."front/ajax_register"; ?>',
data : data,
processData: false,
contentType: false,
success : function(data)
{
jQuery(".result").html(data);
}
});
return false;
});
jQuery(document).on('submit','signup_form',function()
{
//调试器;
var数据=新表单数据($('signup_form')[0]);
jQuery.ajax({
键入:“POST”,
url:“”,
数据:数据,
processData:false,
contentType:false,
成功:功能(数据)
{
jQuery(“.result”).html(数据);
}
});
返回false;
});
问题就在这一行:var data=jQuery(this.serialize()
,如果您序列化数据,正确选择的文件将丢失,并且不会随请求一起提交“image”=>$upload['file\u name']
?@guest271314它将给出图像名称,以便我可以将其存储到数据库中。@Drkdra那么我应该写什么来代替var data=jQuery(这个)连载ze()代码>改用FormData,如