gpt4 book ai didi

php - 将图像附件添加到 PHP 消息?

转载 作者:行者123 更新时间:2023-11-30 23:24:45 25 4
gpt4 key购买 nike

我的站点上有一个 php 消息系统。有了它,用户可以互相发送和接收消息,但最近我一直在尝试寻找一种方法来包含图像附件,这样用户就可以在消息中发送照片。

消息存储在 ptb_messages 中,消息部分(主题和正文)工作正常,但我在我的表中创建了一个名为“图像”的列,它是一个 BLOB 类型和一个“名称”列来存储图像名称.但我是 php 和 mysql 的新手,无论我尝试什么,我似乎都无法将图像存储在数据库中。

任何人都可以帮助我,让我知道哪里出错了吗?

<?php ob_start(); ?>

<?php

// CONNECT TO THE DATABASE
require('includes/_config/connection.php');
// LOAD FUNCTIONS
require('includes/functions.php');
// GET IP ADDRESS
$ip_address = $_SERVER['REMOTE_ADDR'];

?>


<?php require_once("includes/sessionframe.php"); ?>


<?php
confirm_logged_in();
if (isset ($_GET['to'])) {
$user_to_id = $_GET['to'];
}
?>
<?php
//We check if the form has been sent
if(isset($_POST['subject'], $_POST['message_content']))
{
$subject = $_POST['subject'];
$content = $_POST['message_content'];
$image = $POST ['image'];

//We remove slashes depending on the configuration
if(get_magic_quotes_gpc())
{
$subject = stripslashes($subject);
$content = stripslashes($content);
$image = stripslashes($image);
}

//We check if all the fields are filled
if($_POST['subject']!='' and $_POST['message_content']!='')
{
$sql = "INSERT INTO ptb_messages (id, from_user_id, to_user_id, subject, content, image) VALUES (NULL, '".$_SESSION['user_id']."', '".$user_to_id."', '".$subject."', '".$content."', '".$image."');";
mysql_query($sql, $connection);

echo "<div class=\"infobox2\">The message has successfully been sent.</div>";
}
}
if(!isset($_POST['subject'], $_POST['message_content']))

if (empty($_POST['subject'])){
$errors[] = 'The subject cannot be empty.';
if (empty($_POST['body'])){
$errors[] = 'The body cannot be empty.';
}
}

{
?>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<div class="subject">
<input name="subject" type="text" id="subject" placeholder="Subject">
<input type="file" name="image" id="image">
<textarea name="message_content" id="message_content" cols="50" placeholder="Message" rows="8" style="resize:none; height: 100px;"></textarea>
<input type="image" src="assets/img/icons/loginarrow1.png" name="send_button" id="send_button" value="Send">
</form>

<?php } ?>

<?php ob_end_flush() ?>

最佳答案

我的建议是将图像的 URL 存储在数据库中,而不是图像文件本身。将图像存储在服务器文件系统中。原因在于备份和性能的概念,移动一个巨大的 blob 列重复多次并不是一件好事。另外,如果有人在没有 LIMIT 子句的情况下编写 SELECT *,您将进行表扫描以传输所有图像。

就是说,如果您坚持将图像存储在数据库表中,您可能希望使用 base64_encode() 使图像文件对于二进制传输是安全的。在将图像发送到浏览器之前,您可以调用相应的解码函数。

http://php.net/manual/en/function.base64-encode.php

HTH,~雷

关于php - 将图像附件添加到 PHP 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902920/

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