duanluanhui8348 2016-09-16 17:58
浏览 32
已采纳

如何创建一个后端系统,用于在上传图像之前为图像添加超链接和标题

I am creating a back end form system in Php and mysql that will allow me to add captions and hyperlinks on images before their uploaded to a web page. The caption, hyperlink, and a reference to the image will be store in a mysql database. The form will only be used by me. How can I add hyperlinks and captions to images using a form so they can be upload to a web page? This is the code:

<!DOCTYPE html>

<html>
<head>
    <title>Upload form</title>
</head>
<?php
$add_link = $_GET['add_link'];
$add_caption = $_GET['add_caption'];

if(isset($_POST['upload_img'])) {
    $file_name = $_FILES['image'] ['name'];
    $file_type = $_FILES['image'] ['type'];
    $file_size = $_FILES['image'] ['size'];
    $file_tmp_name = $_FILES['image'] ['tmp_name'];

    if($file_name) {
        move_uploaded_file($file_tmp_name,"img/$file_name");
    }
}
?>

<body>

    <form action="" method="post" enctype="multipart/form-data">
        <label>upload Image</label><br><br>
        <input type="file" name="image"><br><br>
        <label>Add link / URL to image:</label> 
        <input type="text" name="add_link" maxlength="30" size="30"><br><br>
        <label>Add text caption:</label> 
        <input type="text" name="add_caption" maxlength="30" size="30"><br><br>

        <input type="submit" value="Upload Image" name="upload_img">
    </form> <br>



    <?php
    $folder = "img/";
    if(is_dir($folder)) {
        if($handle = opendir($folder)) {
            while(($file=readdir($handle)) != false) {
                if($file ==='.' || $file ==='..') continue;

                echo'<a href="$add_link"> <img src="img/".$file."" width="150" height="150" alt=""><br>';
                echo $add_caption . "</a>"; 

            } 
            closedir($handle);
        }
    }


    ?>

    <?php
$servername = "localhost";
$username = "root";
$password = "";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

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

if(!mysqli_select_db($conn,'image_display'))
{
echo 'Database not selected';
}

$add_link = $_GET['add_link'];
$add_caption = $_GET['add_caption'];

$sql = "INSERT INTO table1(image1,name,imagelink,caption,video) VALUES ('$add_link', '$add_caption', '$file_name')";

?>

</body>
</html>
  • 写回答

1条回答 默认 最新

  • douejuan9162 2016-09-16 18:27
    关注

    Here is your code with the problems fixed:

    <!DOCTYPE html>
    
    <html>
    <head>
        <title>Upload form</title>
    </head>
    <?php
    // THESE TWO VARIABLES SHOULD NOT BE HERE     ◄■■■■■■■■■■
    // BECAUSE WE DON'T KNOW IF THE EXIST. THEY   ◄■■■■■■■■■■
    // BELONG TO NEXT IF.                         ◄■■■■■■■■■■
    // $add_link = $_GET['add_link'];
    // $add_caption = $_GET['add_caption'];
    
    if(isset($_POST['upload_img'])) {
        // THE FORM IS "POST", NOT "GET".          ◄■■■■■■■■■■
        $add_link = $_POST['add_link'];            ◄■■■■■■■■■■ POST, NOT GET
        $add_caption = $_POST['add_caption'];      ◄■■■■■■■■■■ POST, NOT GET
        $file_name = $_FILES['image'] ['name'];
        $file_type = $_FILES['image'] ['type'];
        $file_size = $_FILES['image'] ['size'];
        $file_tmp_name = $_FILES['image'] ['tmp_name'];
    
        if($file_name) {
            move_uploaded_file($file_tmp_name,"img/$file_name");
        }
     // THE DATABASE SECTION MUST BE HERE, INSIDE ◄■■■■■■■■■■■■■■■■■■
     // THE IF, NOT AT THE BOTTOM.                ◄■■■■■■■■■■■■■■■■■■
        $servername = "localhost";
        $username = "root";
        $password = "";
    
        // Create connection
        $conn = mysqli_connect($servername, $username, $password);
    
        // Check connection
        if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
        }
    
        if(!mysqli_select_db($conn,'image_display'))
        {
        echo 'Database not selected';
        }
    
        // THESE VARIABLES WERE ALREADY DECLARED.   ◄■■■■■■■■■■■
        // $add_link = $_GET['add_link'];           ◄■■■■■■■■■■■
        // $add_caption = $_GET['add_caption'];     ◄■■■■■■■■■■■
    
        $sql = "INSERT INTO table1(image1,name,imagelink,caption,video) VALUES ('$add_link', '$add_caption', '$file_name')";
    
        }
    ?>
    
    <body>
    
        <form action="" method="post" enctype="multipart/form-data">
            <label>upload Image</label><br><br>
            <input type="file" name="image"><br><br>
            <label>Add link / URL to image:</label> 
            <input type="text" name="add_link" maxlength="30" size="30"><br><br>
            <label>Add text caption:</label> 
            <input type="text" name="add_caption" maxlength="30" size="30"><br><br>
    
            <input type="submit" value="Upload Image" name="upload_img">
        </form> <br>
    
        <?php
        $folder = "img/";
        if(is_dir($folder)) {
            if($handle = opendir($folder)) {
                while(($file=readdir($handle)) != false) {
                    if($file ==='.' || $file ==='..') continue;
    
                    echo'<a href="$add_link"> <img src="img/".$file."" width="150" height="150" alt=""><br>';
                    echo $add_caption . "</a>"; 
    
                } 
                closedir($handle);
            }
        }
        ?>
    </body>
    </html>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于Lammps建模的描述
  • ¥15 #lingo#请问一下为什么会出现以下情况,是因为l第一个值是0的缘故吗?
  • ¥15 设计格雷码同步八进制计数器
  • ¥100 改写matlab程序(关键词-系统对)
  • ¥15 函数信号发生器仿真电路
  • ¥15 Qt的pixmap和image图片加载都导致程序崩溃怎么办
  • ¥15 Kali木马生成问题求解
  • ¥30 求一下解题思路,完全不懂
  • ¥15 C51单片机串口控制JQ6500语音模块
  • ¥30 想给yolo5模型加一个图片识别界面,但是图片还没有检测出来就闪退了