php - 如何通过 jquery 将“multipart/form-data”(图片、pdf 等)保存到 mysql 数据库 mediumblob?
问题描述
我正在构建一个评估工具。逻辑是:
在每个问题中,一旦我单击“上传/查看文件”,它将弹出一个模式;
在模态中,有一个部分您可以选择图片/文档/视频进行上传。代码为: Html代码
单击提交后,它将触发 jquery,如下所示:
$(文档).ready(函数(){ $('#upload_file_attachment').submit(function(event){ event.preventDefault(); var formData = new FormData($(this)[0]); $.ajax({ url: "ajax/upload-attachment.ajax.php", 类型:“发布”, 数据:表格数据, 异步:假, 缓存:假, 内容类型:假, 处理数据:假, “成功”:函数(数据){ $('#upload_success_msg').fadeIn().html(data); 设置超时(函数(){ $('#upload_success_msg').fadeOut("Slow"); },5000); } }); //ajax结束
})})//End of submit
以下是ajax php代码:
需要一次'../php-includes/connect.inc.php'; 全局$db; $assess_id=$_POST['assess_id']; $quest_ref=$_POST['quest_ref']; $email=$_POST['email']; $type=$_POST['type']; if($type=="文件"){ $file=$_FILES["文件"]; $fileName=$file["name"][0]; 如果(空($文件名)){ echo "未选择文件"; 返回; } $fileType=$file["type"][0]; $fileData=$file["tmp_name"][0];
}mysqli_query($db, "INSERT INTO `files` VALUES('$assess_id','$quest_ref','$fileName','$fileType','$fileData', NOW(), '$email', '')"); echo "Success";
但是,当我在上传文件后检查数据库时,它只会将“C:xampp mpphpFE6F.tmp”之类的名称上传到 blob 中,显然 $fileData 不正确。你能帮我怎么做吗?
谢谢
解决方案
另一种方法是将图像保存到服务器或cloudinary之类的东西,并将创建的链接保存到 SQL。
推荐阅读
- mysql - MySQL 等价于 MATCH 上的 MERGE
- powershell - 如何导出所有 AD 用户但仅导出特定列
- pyspark - 如何在传递给flatmap的函数中返回数据
- javascript - How to scroll to bottom of page using JavaScript when accordion control is used in asp.net?
- amazon-web-services - AWS Cognito 用户池强制注销
- ubuntu - Display a window through docker container
- python - Python decrypted text is different every time I decrypt
- html - 网页上的内部链接在 Chrome 中不起作用
- r - How to create a file path in R
- automated-tests - 401 - Unauthorized in cypress io auto testing