php - 从php表单上传图片+图片信息到mysql数据库

标签 php mysql mysqli image-uploading

我有一个表单代码,可以将图片上传到我的网站并将信息保存到 mysql 数据库中:

<form method='post'>
        Album Name: <input type="text" name="title" /> 
        <input type="submit" name="submit" value="create" />
    </form>
<h4>Add Photo</h4>
<form enctype="multipart/form-data" method="post">
        <?php
        require_once 'config.php'; 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    if(isset($_POST['upload'])){
        $caption = $_POST['caption'];
        $albumID = $_POST['album'];
        $file = $_FILES ['file']['name'];
        $file_type = $_FILES ['file']['type'];
        $file_size = $_FILES ['file']['size'];
        $file_tmp = $_FILES ['file']['tmp_name'];
        $random_name = rand();

        if(empty($file)){
            echo "Please enter a file <br>";
        } else{
             move_uploaded_file($file_tmp, 'uploads/'.$random_name.'.jpg');
    $ret = mysqli_prepare($mysqli, "INSERT INTO photos (caption, image_url, date_taken)
    VALUES(?, ?, NOW())");
    $filename = "uploads/" + $random_name + ".jpeg";
    mysqli_stmt_bind_param($ret, "ss", $caption, $filename);
    mysqli_stmt_execute($ret);
    echo "Photo successfully uploaded!<br>";
    }
    }
    ?>
    Caption: <br>
    <input type="text" name="caption">
    <br><br>
    Select Album: <br>
    <select name="album">
    <?php
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    $result = $mysqli->query("SELECT * FROM albums");
    while ($row = $result->fetch_assoc()) {
        $albumID = $row['albumID'];
        $title = $row['title'];
        echo "<option value='$albumID'>$title</option>";
    }
    ?>
    </select>
    <br><br>
    Select Photo: <br>
    <input type="file" name="file">
    <br><br>
    <input type="submit" name="upload" value="Upload">
</form>

这成功地将图片上传到我的“上传”文件夹以及我的 mysql 数据库,但是,我想输入图片 URL“上传/(生成的随机名称).jpg” 我没有用我当前的代码做到这一点,我的照片表的“image_url”列中记录的信息只是生成的随机数。没有开头的“uploads/”和结尾的“.jpg”。

我应该提到我的照片表的架构是: 标题、图片网址、拍摄日期、图片 ID

任何帮助将不胜感激!! 提前谢谢你

最佳答案

您正在使用 +(加号)符号连接,在这一行中:

$filename = "uploads/" + $random_name + ".jpeg";

PHP 使用点/句点连接,而不是 JS/C 语言语法中的加号:

$filename = "uploads/" . $random_name . ".jpeg";

错误检查会发出语法错误的信号。

关于php - 从php表单上传图片+图片信息到mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29220266/

相关文章:

javascript - 通过 JSON 传递给 JavaScript 之前在哪里声明 PHP?

php - 生成随机值并跟踪它们的总和

php - 如何从mysql中取出一个变量,然后从前一个变量中取出另一个变量?

php - 如何让用户在登录后停留在同一页面上

MySQL 中的 Java BCryptPasswordEncoder 等价物

javascript - Ajax/php获取最新数据通知

php - 如何在 node.js 和 PHP 之间进行通信?

php - 如果来自数据库的散列密码与输入密码匹配,则登录

mysql - INDEX bool 字段有多必要

mysql - ASP.NET 应用程序显示 MySQL 中存储的日期之前的日期