2016-01-01 2 views
0

Я был на этом уже 4 дня. Но так как я так новичок в кодировании, мне предложили сначала спросить здесь, так как я бы сэкономил много времени, чтобы получить помощь от опытных кодеров. Кто-то сказал мне, что это может занять 20 минут. Это полезно, потому что мой срок сегодня. И я еще не понял, что происходит на земле.Создание функции загрузки/загрузки изображений с помощью базы данных

GOAL, чтобы изображение могло быть загружено с страницы adminpg.html, чтобы быть видимым и загружаемым с обеих страниц adminpg.html И userpg.html. И эти изображения должны быть сохранены в базе данных (я использую MAMP, но практически не имеют опыта/понимание о том, как получить код для подключения к базе данных MAMP правильно)

upload.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:[email protected]">EMAIL</a> 
       </li> 
      </ul> 
      <p>&copy; 2015 Designed by Julian</p> 
     </footer> 
    </body> 

Если кто-нибудь может помочь мне выяснить, где я здесь ошибся, я был бы всегда благодарен.

Спасибо всем.

ответ

0

Я покажу вам, что у меня есть. Это рабочий код, в котором ваше изображение будет загружено в папку «upload» в моей директории проектов php, и ссылка будет добавлена ​​в базу данных, а затем я покажу ссылку пользователю, чтобы они могли загружать любой тип из файлов, а не только изображений, если это то, что вы хотите, вот мои коды: Это в 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.

Смежные вопросы