繁体   English   中英

为什么我上传的图片没有保存在数据库和我分配的文件夹中?

[英]Why does the image i uploaded do not save in the database and in the folder i assigned it to?

我不明白为什么我在创建新闻时上传的图像不会同时保存在我的数据库和文件夹中。 也没有错误,这就是为什么我无法弄清楚我的代码有什么问题。

这是我的 createNews.php

<form action="/cn/admin/post_news.php" method="post" enctype="multipart/form-data">
            <div class="control-group form-group">
                    <div class="controls">
                        <label>Title</label>
                        <input type="text" name="title" class="form-control">
                            <p class="help-block"></p>
                    </div>
             </div>
             <div class="control-group form-group">
                    <div class="controls">
                        <label>Image:</label>
                        <input type="file" name="file" multiple accept='image/*' >
                            <p class="help-block"></p>
                    </div>
             </div>
            <div class="control-group form-group">
                        <div class="controls">
                            <label>Body:</label><br>
                            <textarea rows="10" cols="100" name="body" class="form-control" id="body" maxlength="999" style="resize:none"></textarea>
                         </div>
            </div>
                         <input type="submit" name="submit" value="Post News" style="float: right"/>

            </form>

这是我的 post_news.php 过程发生的地方。

<?php 
date_default_timezone_set('Asia/Manila');
include_once('db.php');
if(isset($_POST['submit'])) {

    $title = $_POST['title'];
    $body = $_POST['body'];
    $date = date('Y-m-d H:i:s');

    $title= stripslashes($title);
    $body= stripslashes($body);

    $title = mysql_real_escape_string($title);
    $body = mysql_real_escape_string($body);

    $file = rand(1000,100000)."-".$_FILES['file']['name'];
    $type = $_FILES['file']['type'];
    $size = $_FILES['file']['size'];
    $loc = $_FILES['file']['tmp_name'];
    $destination = "/cn/news-images/";

    $new_size=$size/1024; // file size in KB

    // make file name in lower case
     $new_file_name = strtolower($file);
     // make file name in lower case

     $final_file=str_replace(' ','-',$new_file_name);

    $servername = "localhost";
    $username="root";
    $password = "";
    $database = "cn";
    $connection = new mysqli($servername, $username, $password, $database);
    if ($connection->connect_error) {
        die("Connection failed: " . $connection->connect_error);
    }

    if(move_uploaded_file($loc,$destination.$final_file)) {
        $sql = "INSERT INTO news (title, body, name, date, photo, type, size) VALUES('$title','$body','$name','$date','$final_file','$type','$new_size')";
        mysql_query($sql);
        echo "<script type='text/javascript'>alert('Your news has been posted!'); window.location.assign('home.php');</script>";
    }
    else
    {
        $sql = "INSERT INTO news (title, body, name, date, photo, type, size) VALUES('$title','$body','$name','$date','','', '0')";
        mysql_query($sql);
        echo "<script type='text/javascript'>alert('Your news has been posted!'); window.location.assign('home.php');</script>";

    }
}

?>

由于您使用的是 mysqli,所以不要使用 mysql_query($sql),而是使用 $connection->query($sql)

..and 文件保存到 tmp 目录。 如果你想把它放在任何地方,请看

http://php.net/manual/en/function.move-uploaded-file.php

$destination = "/cn/news-images/" 之后;

关于写到数据库.....mb 之前得到它...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM