我发布了以下帖子请求,似乎工作正常。当我查看网络下的开发人员工具时,一切似乎都有效,我可以看到每个参数都在发布。但是当执行insert.php
时,没有任何内容添加到数据库中,我没有收到任何错误消息。我正在尝试将图像保存到mysql中的Blob中。
发布请求
var description = $('#description').val();
var title = $('#title').val();
var fileInput = $("#image")[0];
var file = fileInput.files[0];
var dataResult = new FormData();
dataResult.append('image', file);
dataResult.append('desc', description);
dataResult.append('title', title);
dataResult.append('longitude', currentMarker.lng());
dataResult.append('latitude', currentMarker.lat());
$.ajax({
type: 'POST',
url: 'insert.php',
data: dataResult,
processData: false,
contentType: false,
success: function (answer) {
}
})
insert.php
include('config.php');
if (isset($_POST['title']) && isset($_POST['body']) && isset($_POST['longitude']) && isset($_POST['latitude'])){
$title = $_POST['title'];
$body = $_POST['body'];
$longitude = (float)$_POST['longitude'];
$latitude = (float)$_POST['latitude'];
$file = file_get_contents($_FILES['image']['name']);
$strSQL = $db->query("INSERT INTO camps (title, body, longitude, latitude, image) VALUES ('$title', '$body', '$longitude','$latitude', '$file')");
}
转储
array(4) {
["desc"]=>
string(6) "teeest"
["title"]=>
string(11) "test"
["longitude"]=>
string(18) "-74.17870044708252"
["latitude"]=>
string(17) "40.73480350827126"
}
答案 0 :(得分:0)
这里有一些问题:
answer
变量中获得输出时,您不会对其执行任何操作。您至少应该将其转储到控制台以查看发生的情况。if
区块,因为没有任何元素的密钥为body
$_FILES['image']['name']
,而是$_FILES['image']['tmp_name']
。可能还有更多,但是当您添加错误处理并使用脚本输出时,您至少可以看到错误的内容。
除此之外,我建议您将文件存储为文件系统中的文件,然后只添加数据库的路径。