Доведение до ума php uploader'a

Тема в разделе "Как сделать...", создана пользователем Aisy, 17 июл 2012.

Статус темы:
Закрыта.
  1. Aisy

    Aisy Постоялец

    Регистр.:
    16 ноя 2011
    Сообщения:
    73
    Симпатии:
    2
    Итак, есть такой скрипт:
    PHP:
    <?php
    $webdir    
    'http://site1.ru/';
    $uploaddir 'dropbox/';
    $filepath $uploaddir basename($_FILES['userfile']['name']);
     
    if (
    move_uploaded_file($_FILES['userfile']['tmp_name'], $filepath))
        
    $link "<a href=\"$webdir$filepath\">$webdir$filepath</a>";
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <title>DropBox</title>
    <style type="text/css">
    body {
      font-family: tahoma, verdana, arial, sans-serif;
      color:#343434;
    }
    </style>
    </head>
    <body>
    <div style="text-align: center;">
    <br/>
    <br/>
    <form enctype="multipart/form-data" method="post">
    <br/><br/><br/>
    <br/>
    File: <input name="userfile" type="file" /><br/>
    <br/>
    <br/>
    <input type="submit" value="Upload/Show" /><br/>
    <?php if($_SERVER['REQUEST_METHOD'] == 'POST'): ?>
    <?php
    echo "<br/>";
     
        echo 
    $link;
        if(!empty(
    $_POST['to_delete'])) {
            foreach(
    $_POST['to_delete'] as $file)
                @
    unlink($file);
        }
        
    $files glob$uploaddir '*'GLOB_MARK );
        if(!empty(
    $files)):
    ?>
    <br/>
    <br/>
    <hr/><center>
    <table cellpadding="5" style="font-size: 0.8em;">
    <tr>
    <th>Filename</th>
      <th>Size (Mb)</th>
      <th>Date</th>
    </tr>
    <?php
            
    foreach($files as $filepath):
    ?>
      <tr>
    <?php $filesize filesize($filepath);
    $filesize $filesize 1024;
    $filesize $filesize 1024;
    $filesize round($filesize,3);
    ?>
        <td align="left"><?php echo "<a href=\"$webdir$filepath\">$webdir$filepath</a>"?></td>
        <td align="right"><?php echo $filesize?></td>
        <td align="right"><?php echo date('Y-m-d H:i:s'filemtime$filepath ) )?></td>
      </tr>
    <?php  endForeach ?>
    </table>
    <?php endIf ?>
    <?php 
    endIf ?>
    </form>
    </div>
    </body>
    <html>


    Что не удалось сделать?

    *Изменение имени файла на time()+rand(1000)
    *Сейчас вся инфа сохраняется в db.db, что небезопасно, т.к. с бд не умею работать.
    *Регистрация пользователей кривая (не представлена под спойлером)
    *Админки нет (Пока сделал только "шаблон", взаимодействие не наладил)
     
  2. evangel

    evangel Создатель

    Регистр.:
    7 сен 2008
    Сообщения:
    17
    Симпатии:
    1
    *Изменение имени файла на time()+rand(1000)
    PHP:
    $filename $_FILES['upfile']['name'];
    $filetmp_name $_FILES['upfile']['tmp_name'];
    $time time();
     
    $Type_end_arr explode(".",$filename);
    $Type_end $Type_end_arr[1];
    $filesrc md5($filetmp_name.$time).".".$Type_end;
     
    move_uploaded_file($filetmp_name"./ImgUp/".$filesrc);
    у мя такой принцип
     
Статус темы:
Закрыта.