使用php将图像保存到数据库-6ren"> 使用php将图像保存到数据库-我有一个移动网络应用程序表单,我可以在其中访问移动设备摄像头并捕获照片以及表单中其他字段中捕获的一些其他详细信息。使用php,我成功地将表单中捕获的信息保存到mysql数据库,但图像未存储。我已经搜索-6ren">
gpt4 book ai didi

php - <输入类型="file"接受="image/*;capture=camera">使用php将图像保存到数据库

转载 作者:行者123 更新时间:2023-11-29 11:18:54 26 4
gpt4 key购买 nike

我有一个移动网络应用程序表单,我可以在其中访问移动设备摄像头并捕获照片以及表单中其他字段中捕获的一些其他详细信息。使用php,我成功地将表单中捕获的信息保存到mysql数据库,但图像未存储。我已经搜索了解决方案,但找不到有关使用 php 的任何内容

<input type="file" accept="image/*;capture=camera"> 

将图像存储在数据库中。数据库字段当前为 blob,但如果需要,可以更改。

该表单适用于所有其他数据,因此问题在于我不了解如何使用 php 处理图像或文件。任何人都可以帮助或指出我正确的方向吗?我的代码的基础粘贴在下面。

当bus_name输入保存到数据库时,表单保存工作正常,但bus_img记录为空。

HTML

<div data-role="page" id="view_record">
<div data-role="header">
<a href="#" data-rel="back" class="ui-btn-right ui-btn ui-btn-icon-notext ui-corner-all ui-icon-back">Back</a>
<div data-role="main" class="ui-content">
<form method="post" enctype="multipart/form-data" action="saveRecord.php">
<label for="bus_name">Business Name:</label>
<input type="text" name="bus_name" id="bus_name" placeholder="Enter Business Name">

<label for="bus_type">Business Type:</label>
<input type="text" name="bus_type" id="bus_type" placeholder="Enter Business Type">

<label for="bus_tel">Business Tel:</label>
<input type="text" name="bus_tel" id="bus_tel" placeholder="Enter Business Tel No">

<label for="bus_img">Business Photo:</label>
<input type="file" name="bus_img" id="bus_img" accept="image/*;capture=camera">

<label for="comments">Comments:</label>
<textarea name="comments" id="comments" placeholder="Enter Comments"></textarea>

<input type="submit" value="Submit">
</form>
</div>
</div>
</div>

PHP

<?php
$bus_img = $bus_name = "";

$servername = "";
$username = "";
$password = "";
$dbname = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn)
{
die("Connection failed: " . mysqli_connect_error());}

$bus_img = $_FILES["bus_img"];
$bus_img = mysqli_real_escape_string($conn, $bus_img);
$bus_name = $_POST["bus_name"];

$sql = "INSERT INTO tblLead(leadImage, occupantName)

VALUES ('$bus_img','$bus_name')";

if (mysqli_query($conn, $sql))
{
} else
{
echo "Error: " . $sql . mysqli_error($conn);
}
mysqli_close($conn);
exit();
}
?>

非常感谢任何帮助。谢谢

最佳答案

首先,文件处理需要 $_FILES 而不是 $_POST

您的表单标记不包含处理文件的正确 enctype。

根据手册中有关文件处理的示例:

<form enctype="multipart/form-data" action="__URL__" method="POST">

引用:

然后您需要转义该(文件)数据,有几种方法可以做到这一点。

其中之一是 mysqli_real_escape_string($conn, $file)

引用:

您还应该对所有数据使用它,因为它目前对 SQL 注入(inject)开放。

即并通过替换:

$bus_img = $_POST["bus_img"];

与:

$bus_img = $_FILES["bus_img"];
$bus_img = mysqli_real_escape_string($conn, $bus_img);

并确保文件不超过服务器上允许/设置的最大上传大小。

也使用适当的错误检查。

关于php - <输入类型="file"接受="image/*;capture=camera">使用php将图像保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39293485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com