【问题标题】:Creating an upload / download function for images via a database通过数据库为图像创建上传/下载功能
【发布时间】:2016-04-05 21:43:58
【问题描述】:

我已经在这里工作了 4 天了。但是由于我对编码还很陌生,因此建议我先在这里询问,因为我可以节省大量时间从经验丰富的编码人员那里获得帮助。有人告诉我这可能需要 20 分钟。这很有帮助,因为我的截止日期是今晚。而且我还没有弄清楚到底发生了什么。

目标 允许从 adminpg.html 页面上传图像,以便从 adminpg.html 和 userpg.html 页面查看和下载。并将这些图像存储在数据库中(我正在使用 MAMP,但对如何让我的代码正确连接到我的 MAMP 数据库几乎没有经验/了解)

上传.php:http://scratchpad.io/absent-boot-2909

adminpg.html:http://scratchpad.io/hesitant-visitor-5291

userpg.html 代码:(因为我不能再发布链接了)

<head>
    <meta charset="utf-8">
    <title>-=The Portfolio Website=-</title>
     <link rel="stylesheet" type="text/css" href="../css/stylesheet.css">
            </head>
    <body>
        <header id = "MainHeader">
               <h1>Viewing / Download page</h1>

            <nav>

            <ul>
                <li>
                    <a href="../index.html">Home</a>
                </li>
                <li>
                    <a href="pages/about.html">About Me</a>
                </li>
                <li>
                    <a href="pages/contact.html">Contact</a>
                </li>
                </ul>
            </nav>
            </header>
        <main>


            <button type="button" style = "position:absolute; top:400px; left:50%; transform:translate(-50%); transform:scale(3,3);">Download Entire Folio</button>

            <div>   <img src="../images/SC.jpg" alt="Cover Image"> 
            <p>
                This page is where you can access all the softcopy files of my folio.</p>
        </main>
        <footer>
            <ul>
            <li>
                <a href="http://www.instagram.com">INSTAGRAM</a>
                </li>
                <li>
                <a href="http://www.facebook.com">FACEBOOK</a>
                </li>
                <li>
                <a href="mailto:someone@yoursite.com">EMAIL</a>
                </li>
            </ul>
            <p>&copy; 2015 Designed by Julian</p>
        </footer>
    </body>

如果有人能帮我找出我哪里出了问题,我将永远感激不尽。

谢谢大家。

【问题讨论】:

    标签: javascript php html mysql mamp


    【解决方案1】:

    我会告诉你我有什么。这是一个工作代码,您的图像将上传到我的 php 项目目录中名为“upload”的文件夹中,链接将添加到数据库中,然后,我向用户显示链接,以便他们可以下载任何类型文件,不仅是图像,如果这是你想要的,这是我的代码: 这是在 PHP-PDO 中:当我的提交按钮被点击时,我的文件名和保存位置的链接是从 HTML 表单中获取的,然后如果上传到文件夹成功,它将被添加到数据库。

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if(isset($_POST['submit_map'])){
        $name = isset($_POST['name_of_map']) ? $_POST['name_of_map'] : '';
            $message='';
            $path = "../uploads/".$_FILES['file']['name'];
            try{
    
    
    
    
                    $ext = pathinfo($path, PATHINFO_EXTENSION);
                    if(move_uploaded_file($_FILES["file"]["tmp_name"], $path)){
                        //$path = "./uploads/".$path;
                        $sql = "INSERT INTO maps(name_of_map, projects_id, map) VALUES (:name, :id, :file)";
                        $stmt = $conn->prepare($sql);
                        $stmt->bindValue(":name", $name);
                        $stmt->bindValue(":id", $id);
                        $stmt->bindValue(":file", $path);
                        $count = $stmt->execute();
                        //var_dump($_FILES);
                        //die();
                        header("location: maps.php?id=".$id);
                }
            }
            catch(PDOException $e) {
                echo $e->getMessage();
                var_dump($_FILES);          
                header("location: insert_map_false.php?id=".$id);
    
            }
                        unset($_POST['submit_map']);
        }
    }
    ?>
    

    然后下载: 将此代码保存到新的 PHP 文件中,我将其命名为 download_PopUp.php

    <?php
    $data = $_REQUEST['data'];
    header('Content-Type: application/octet-stream');
    header("Content-Transfer-Encoding: Binary"); 
    //header("Content-disposition: attachment; filename=\"" . basename($data) . "\"");
    header("Content-disposition: attachment; filename=\"" . basename($data) . "\"");
    readfile($data);
    ?>
    

    这是我的 HTML 代码,其中显示了下载文件的链接:

    <?php
    $sql_map = "SELECT * FROM maps WHERE projects_id = :id_m";
    $stmt_map = $conn->prepare($sql_map);
    $stmt_map->bindValue(":id_m", $id);
    $count_m = $stmt_map->execute();
    $result = $stmt_map->fetchAll();
    ?>
    <form action="" name="show_maps" method="post" enctype="multipart/form-data">
    <table border="1" cellpadding="2" cellspacing="1" align="center" dir="rtl">
    <th bgcolor="#666666" align="center">
    الخريطة
    </th>
    <td>
    <?php foreach ($result as $map) { 
        $data = $map['map'];
        $dataFile = str_replace('/', '\\', $data);
    ?>
    <tr align="center">
    <td>
        <?php if($map['name_of_map']==''): ?>
       <a href='download_PopUp.php?data=<?php echo $dataFile; ?>'><?php echo $dataFile?></a>
       <?php else: ?>
       <a href='download_PopUp.php?data=<?php echo $dataFile; ?>'><?php echo $map['name_of_map']?></a>
       <?php endif; ?>
    <?php } ?>
    </td>
    </tr>
    </tr>
    </table>
    </form> 
    

    如果您在使用 JavaScript 时遇到困难,我希望这对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-11
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 2021-11-05
      • 1970-01-01
      相关资源
      最近更新 更多