【发布时间】:2016-03-15 09:16:30
【问题描述】:
我无法通过 ajax 上传图片,每当我点击提交按钮时,它总是重定向到页面,并且数据也没有添加到数据库中。
表格
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" id="ImageUploadForm" enctype="multipart/form-data">
<input type="text" name="caption" id="caption">
<input type="file" name="image" id="ImageBrowse"/>
<input type="submit" class="btn btn-success" value="Save" />
</form>
ajax
$(document).ready(function (e) {
$("#imageUploadForm").on('submit',(function(e) {
e.preventDefault();
$.ajax({
url: "<?php echo base_url();?>adminpromisess/addgal",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data) {
alert(data);
//$("#gallery-form").load(".gallery-form");
},
error: function() {
}
});
}));
});
将数据添加到数据库函数(控制器)
public function addgal(){
$caption = $this->input->post('caption');
$promises = 00;
$description = $this->input->post('description');
$image = $_FILES['image']['name'];
if(move_uploaded_file($_FILES['image']['tmp_name'], 'assets/img/upload/promises_image/'.$image)){
$data = array(
'caption' => $caption,
'promises' => $promises,
'gal_desc' => $description,
'image' => $image
);
$result = $this->adminpromisesmodel->addGallery($data);
}else{
echo "Fail to upload file";
die();
}
}
注意:保存数据库的模型(查询)是正确的,所以我没有发布它
【问题讨论】:
-
那么您可以在 1. 您的 http 服务器错误日志文件和 2. 您的浏览器开发控制台中看到什么?
-
没有关于 2. 但是如何查看 http 服务器错误日志文件
-
那是不可能的。至少您必须在浏览器控制台中看到网络请求。
-
关于 http 服务器错误日志文件 - 嗯,它是您的 http 服务器写入的日志文件,其中转储所有 php 和网络问题(在正常设置中)。默认位置类似于
/var/log/apache2/error.log。所以你必须在服务器上找到它,并且在进行 php 开发时应该始终监视它。最好是使用tail -f <logfile>之类的东西来完成这样的任务...... -
您打错字了(请参阅我的回答),是的,您应该学习使用浏览器和服务器日志,因为这样可以轻松解决此类问题。
标签: javascript php jquery ajax