我创建了一个表单,该表单可以从用户上传图像并将其存储到我现在创建的文件夹中,我想也将图像插入到mysql db中,然后也将其提取并显示在表中
function bs_input_file() {
$(".input-file").before(
function () {
if (!$(this).prev().hasClass('input-ghost')) {
var element = $("<input type='file' class='input-ghost' accept='image/jpg,image/jpeg,image/png,image/gif' style='visibility:hidden; height:0'>");
element.attr("name", $(this).attr("name"));
element.change(function () {
element.next(element).find('input').val((element.val()).split('\\').pop());
});
$(this).find("button.btn-choose").click(function () {
element.click();
});
$(this).find("button.btn-reset").click(function () {
element.val(null);
$(this).parents(".input-file").find('input').val('');
});
$(this).find('input').css("cursor", "pointer");
$(this).find('input').mousedown(function () {
$(this).parents('.input-file').prev().click();
return false;
});
return element;
}
}
);
}
function generateAlert(type, message){
new PNotify({
text: message,
type: type,
title: type,
hide: true,
buttons: {
closer_hover: false,
sticker: false
},
mobile: {
swipe_dismiss: true,
styling: true
}
});
}
$(function () {
bs_input_file();
//upload file code starts here
$("body").on("click", ".uploadfilebutton", function(e){
e.preventDefault();
if ($('.input-ghost').get(0).files.length === 0) {
alert("No file selected.");
}
var formData = new FormData();
formData.append('upload', 'fileupload');
// Attach file
formData.append('image', $('.input-ghost')[0].files[0]);
$.ajax({
url: 'upload.php',
data: formData,
type: 'POST',
contentType: false,
processData: false,
// ... Other options like success and etc
beforeSend: function(data, xhr){
$('.loader').removeClass("hide");
},
success: function(response, status, xhr){
var type;
if(xhr.status === 200 || xhr.status === '200'){
type = "success";
$('#Pic').val('');
}else{
type = "error";
}
generateAlert(response, type);
},
error: function(response, status, xhr){
generateAlert("Some Error Occured while uploading file", "error");
},
complete: function(response, status, xhr){
$('.loader').addClass("hide");
},
});
});
});
答案 0 :(得分:0)
我将使用它来捕获文件名并将其存储在数据库中,因为它比存储实际图像要有效得多。
$image = ($_FILES['testimage']['name']);
然后,您要做的就是将其作为变量检索,然后引用您将其存储在服务器上的位置。例如
<img src="images/<?php echo $Image->testimage; ?>
如果您想将实际图像存储在数据库中,则需要将其存储为Blob类型,但是由于图像文件的大小,这种方法不是最佳实践。
答案 1 :(得分:0)
您可以使用file_get_contents
获取文件内容,然后将其插入数据库。
$content = file_get_contents($path);
if ($conn = mysqli_connect('localhost', 'root', 'root', 'test')) {
$content = mysqli_real_escape_string($conn, $content);
$sql = "insert into images (name, size, type, content) values ('{$name}', '{$size}', '{$type}', '{$content}')";
if (mysqli_query($conn, $sql)) {
$uploadOk = true;
$imageId = mysqli_insert_id($conn);
} else {
echo "Error: Could not save the data to mysql database. Please try
again.";
}
}