Adding a Delete Button to an PHP upload form.

Discussion in 'Programming' started by swimmingfungus, Nov 14, 2008.

  1. #1
    Hi everyone! I am new here an am looking for some help.

    I have a small music band and have a login area on our website where the band members can share music ideas and upload/ download files.

    What we dont have is a delete button. Can anyone help us in adding the right code to add a delete button so we can delete files we no longer need?

    Here is the code we have for our Upload.php file.

    We can upload files and they are stored in a file called PHP along with the upload.php file.

    <?
    $startdir = '.';
    $showthumbnails = true;
    $showdirs = false;
    $forcedownloads = true;
    $hide = array(
    'dlf',
    'upload.php',
    'Thumbs',
    '.htaccess',
    '.htpasswd',
    'whats_on.html',
    'statement.html',
    'music.html',
    'links.html',
    'index.html',
    'gallery_5.html',
    'gallery_2.html',
    'gallery.htm',
    'contact.html',
    'biography.html',
    'Templates',
    'music',
    'images',
    'CSS'
    );

    $displayindex = false;
    $allowuploads = true;
    $overwrite = true;


    $indexfiles = array (
    'index.html',
    'index.htm',
    'default.htm',
    'default.html'
    );

    $filetypes = array (
    'png' => 'jpg.gif',
    'jpeg' => 'jpg.gif',
    'bmp' => 'jpg.gif',
    'jpg' => 'jpg.gif',
    'gif' => 'gif.gif',
    'zip' => 'archive.png',
    'rar' => 'archive.png',
    'exe' => 'exe.gif',
    'setup' => 'setup.gif',
    'txt' => 'text.png',
    'htm' => 'html.gif',
    'html' => 'html.gif',
    'fla' => 'fla.gif',
    'swf' => 'swf.gif',
    'xls' => 'xls.gif',
    'docx' => 'doc.gif',
    'sig' => 'sig.gif',
    'fh10' => 'fh10.gif',
    'pdf' => 'pdf.gif',
    'psd' => 'psd.gif',
    'rm' => 'real.gif',
    'mpg' => 'video.gif',
    'mpeg' => 'video.gif',
    'mov' => 'video2.gif',
    'avi' => 'video.gif',
    'eps' => 'eps.gif',
    'gz' => 'archive.png',
    'asc' => 'sig.gif',
    );

    error_reporting(0);
    if(!function_exists('imagecreatetruecolor')) $showthumbnails = false;
    $leadon = $startdir;
    if($leadon=='.') $leadon = '';
    if((substr($leadon, -1, 1)!='/') && $leadon!='') $leadon = $leadon . '/';
    $startdir = $leadon;

    if($_GET['dir']) {
    //check this is okay.

    if(substr($_GET['dir'], -1, 1)!='/') {
    $_GET['dir'] = $_GET['dir'] . '/';
    }

    $dirok = true;
    $dirnames = split('/', $_GET['dir']);
    for($di=0; $di<sizeof($dirnames); $di++) {

    if($di<(sizeof($dirnames)-2)) {
    $dotdotdir = $dotdotdir . $dirnames[$di] . '/';
    }

    if($dirnames[$di] == '..') {
    $dirok = false;
    }
    }

    if(substr($_GET['dir'], 0, 1)=='/') {
    $dirok = false;
    }

    if($dirok) {
    $leadon = $leadon . $_GET['dir'];
    }
    }

    if($_GET['download'] && $forcedownloads) {
    $file = str_replace('/', '', $_GET['download']);
    $file = str_replace('..', '', $file);

    if(file_exists($leadon . $file)) {
    header("Content-type: application/x-download");
    header("Content-Length: ".filesize($leadon . $file));
    header('Content-Disposition: attachment; filename="'.$file.'"');
    readfile($leadon . $file);
    die();
    }
    }

    if($allowuploads && $_FILES['file']) {
    $upload = true;
    if(!$overwrite) {
    if(file_exists($leadon.$_FILES['file']['name'])) {
    $upload = false;
    }
    }

    if($upload) {
    move_uploaded_file($_FILES['file']['tmp_name'], $leadon . $_FILES['file']['name']);
    }
    }

    $opendir = $leadon;
    if(!$leadon) $opendir = '.';
    if(!file_exists($opendir)) {
    $opendir = '.';
    $leadon = $startdir;
    }

    clearstatcache();
    if ($handle = opendir($opendir)) {
    while (false !== ($file = readdir($handle))) {
    //first see if this file is required in the listing
    if ($file == "." || $file == "..") continue;
    $discard = false;
    for($hi=0;$hi<sizeof($hide);$hi++) {
    if(strpos($file, $hide[$hi])!==false) {
    $discard = true;
    }
    }

    if($discard) continue;
    if (@filetype($leadon.$file) == "dir") {
    if(!$showdirs) continue;

    $n++;
    if($_GET['sort']=="date") {
    $key = @filemtime($leadon.$file) . ".$n";
    }
    else {
    $key = $n;
    }
    $dirs[$key] = $file . "/";
    }
    else {
    $n++;
    if($_GET['sort']=="date") {
    $key = @filemtime($leadon.$file) . ".$n";
    }
    elseif($_GET['sort']=="size") {
    $key = @filesize($leadon.$file) . ".$n";
    }
    else {
    $key = $n;
    }
    $files[$key] = $file;

    if($displayindex) {
    if(in_array(strtolower($file), $indexfiles)) {
    header("Location: $file");
    die();
    }
    }
    }
    }
    closedir($handle);
    }

    //sort our files
    if($_GET['sort']=="date") {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
    }
    elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
    }
    else {
    @natcasesort($dirs);
    @natcasesort($files);
    }

    //order correctly
    if($_GET['order']=="desc" && $_GET['sort']!="size") {$dirs = @array_reverse($dirs);}
    if($_GET['order']=="desc") {$files = @array_reverse($files);}
    $dirs = @array_values($dirs); $files = @array_values($files);


    ?>
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Annemarie Borg <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></title>
    <link rel="stylesheet" type="text/css" href="../dlf/styles.css" />
    <?
    if($showthumbnails) {
    ?>
    <script language="javascript" type="text/javascript">
    <!--
    function o(n, i) {
    document.images['thumb'+n].src = 'dlf/i.php?f='+i;

    }

    function f(n) {
    document.images['thumb'+n].src = 'dlf/trans.gif';
    }
    //-->
    </script>
    <?
    }
    ?>
    </head>
    <body>
    <div id="container">
    <h1>Annemarie Borg's Music <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></h1>
    <div id="breadcrumbs"> <a href="<?=$_SERVER['../PHP_SELF'];?>">home</a>
    <?
    $breadcrumbs = split('/', $leadon);
    if(($bsize = sizeof($breadcrumbs))>0) {
    $sofar = '';
    for($bi=0;$bi<($bsize-1);$bi++) {
    $sofar = $sofar . $breadcrumbs[$bi] . '/';
    echo ' &gt; <a href="'.$_SERVER['PHP_SELF'].'?dir='.urlencode($sofar).'">'.$breadcrumbs[$bi].'</a>';
    }
    }

    $baseurl = $_SERVER['PHP_SELF'] . '?dir='.$_GET['dir'] . '&amp;';
    $fileurl = 'sort=name&amp;order=asc';
    $sizeurl = 'sort=size&amp;order=asc';
    $dateurl = 'sort=date&amp;order=asc';

    switch ($_GET['sort']) {
    case 'name':
    if($_GET['order']=='asc') $fileurl = 'sort=name&amp;order=desc';
    break;
    case 'size':
    if($_GET['order']=='asc') $sizeurl = 'sort=size&amp;order=desc';
    break;

    case 'date':
    if($_GET['order']=='asc') $dateurl = 'sort=date&amp;order=desc';
    break;
    default:
    $fileurl = 'sort=name&amp;order=desc';
    break;
    }
    ?>
    </div>
    <div id="listingcontainer">
    <div id="listingheader">
    <div id="headerfile"><a href="<?=$baseurl . $fileurl;?>">File</a></div>
    <div id="headersize"><a href="<?=$baseurl . $sizeurl;?>">Size</a></div>
    <div id="headermodified"><a href="<?=$baseurl . $dateurl;?>">Last Modified</a></div>
    </div>
    <div id="listing">
    <?
    $class = 'b';
    if($dirok) {
    ?>
    <div><a href="<?=$_SERVER['../PHP_SELF'].'?dir='.urlencode($dotdotdir);?>" class="<?=$class;?>"><strong>..</strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($dotdotdir));?></a></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    $arsize = sizeof($dirs);
    for($i=0;$i<$arsize;$i++) {
    ?>
    <div><a href="<?=$_SERVER['../PHP_SELF'].'?dir='.urlencode($leadon.$dirs[$i]);?>" class="<?=$class;?>"><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$dirs[$i]));?></a></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }

    $arsize = sizeof($files);
    for($i=0;$i<$arsize;$i++) {
    $icon = 'unknown.png';
    $ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
    $supportedimages = array('gif', 'png', 'jpeg', 'jpg');
    $thumb = '';

    if($showthumbnails && in_array($ext, $supportedimages)) {
    $thumb = '<span><img src="dlf/trans.gif" alt="'.$files[$i].'" name="thumb'.$i.'" /></span>';
    $thumb2 = ' onmouseover="o('.$i.', \''.urlencode($leadon . $files[$i]).'\');" onmouseout="f('.$i.');"';

    }

    if($filetypes[$ext]) {
    $icon = $filetypes[$ext];
    }

    $filename = $files[$i];
    if(strlen($filename)>43) {
    $filename = substr($files[$i], 0, 40) . '...';
    }

    $fileurl = $leadon . $files[$i];
    if($forcedownloads) {
    $fileurl = $_SESSION['PHP_SELF'] . '?dir=' . urlencode($leadon) . '&download=' . urlencode($files[$i]);
    }

    ?>
    <div><a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$files[$i]));?><?=$thumb;?></a></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    ?></div>
    <?
    if($allowuploads) {
    $phpallowuploads = (bool) ini_get('file_uploads');
    $phpmaxsize = ini_get('upload_max_filesize');
    $phpmaxsize = trim($phpmaxsize);
    $last = strtolower($phpmaxsize{strlen($phpmaxsize)-1});
    switch($last) {
    case 'g':
    $phpmaxsize *= 9024;
    case 'm':
    $phpmaxsize *= 9024;
    }

    ?>
    <div id="upload">
    <div id="uploadtitle"><strong>File Upload</strong> (Max Filesize: <?=$phpmaxsize;?>KB)</div>
    <div id="uploadcontent">
    <?
    if($phpallowuploads) {
    ?>
    <form method="post" action="<?=$_SERVER['../PHP_SELF'];?>?dir=<?=urlencode($leadon);?>" enctype="multipart/form-data">

    <div align="left">
    <input type="file" name="file" />
    <input type="submit" value="Upload" />
    </div>
    </form>
    <?
    }
    else {
    ?>
    File uploads are disabled in your php.ini file. Please enable them.
    <?
    }
    ?>
    </div>

    </div>
    <?
    }
    ?>
    </div>
    </div>
    <div id="copy">Your name &copy;2008 <a href="http://ours.co.uk/">ours</a>. Design by <a href="http://www.ours.co.uk/">ours</a>.</div>
    </body>
    </html>
     
    swimmingfungus, Nov 14, 2008 IP
  2. happpy

    happpy Well-Known Member

    Messages:
    926
    Likes Received:
    14
    Best Answers:
    0
    Trophy Points:
    120
    #2
    well, here you are.

    but i hope you use this script in trusted environment only, cause it seems in now way secured.

    anyway, here is your delete-button version.

    contact me via PM for eventual honors.

    <?
    
    if($delll==""){}else{ unlink("$_GET[dir]/$_GET[delll]"); echo"<h1>$_GET[delll] DELETED!</h1>";}
    
    $startdir = '.';
    $showthumbnails = true;
    $showdirs = false;
    $forcedownloads = true;
    $hide = array(
    'dlf',
    'upload.php',
    'Thumbs',
    '.htaccess',
    '.htpasswd',
    'whats_on.html',
    'statement.html',
    'music.html',
    'links.html',
    'index.html',
    'gallery_5.html',
    'gallery_2.html',
    'gallery.htm',
    'contact.html',
    'biography.html',
    'Templates',
    'music',
    'images',
    'CSS'
    );
    
    $displayindex = false;
    $allowuploads = true;
    $overwrite = true;
    
    
    $indexfiles = array (
    'index.html',
    'index.htm',
    'default.htm',
    'default.html'
    );
    
    $filetypes = array (
    'png' => 'jpg.gif',
    'jpeg' => 'jpg.gif',
    'bmp' => 'jpg.gif',
    'jpg' => 'jpg.gif',
    'gif' => 'gif.gif',
    'zip' => 'archive.png',
    'rar' => 'archive.png',
    'exe' => 'exe.gif',
    'setup' => 'setup.gif',
    'txt' => 'text.png',
    'htm' => 'html.gif',
    'html' => 'html.gif',
    'fla' => 'fla.gif',
    'swf' => 'swf.gif',
    'xls' => 'xls.gif',
    'docx' => 'doc.gif',
    'sig' => 'sig.gif',
    'fh10' => 'fh10.gif',
    'pdf' => 'pdf.gif',
    'psd' => 'psd.gif',
    'rm' => 'real.gif',
    'mpg' => 'video.gif',
    'mpeg' => 'video.gif',
    'mov' => 'video2.gif',
    'avi' => 'video.gif',
    'eps' => 'eps.gif',
    'gz' => 'archive.png',
    'asc' => 'sig.gif',
    );
    
    error_reporting(0);
    if(!function_exists('imagecreatetruecolor')) $showthumbnails = false;
    $leadon = $startdir;
    if($leadon=='.') $leadon = '';
    if((substr($leadon, -1, 1)!='/') && $leadon!='') $leadon = $leadon . '/';
    $startdir = $leadon;
    
    if($_GET['dir']) {
    //check this is okay.
    
    if(substr($_GET['dir'], -1, 1)!='/') {
    $_GET['dir'] = $_GET['dir'] . '/';
    }
    
    $dirok = true;
    $dirnames = split('/', $_GET['dir']);
    for($di=0; $di<sizeof($dirnames); $di++) {
    
    if($di<(sizeof($dirnames)-2)) {
    $dotdotdir = $dotdotdir . $dirnames[$di] . '/';
    }
    
    if($dirnames[$di] == '..') {
    $dirok = false;
    }
    }
    
    if(substr($_GET['dir'], 0, 1)=='/') {
    $dirok = false;
    }
    
    if($dirok) {
    $leadon = $leadon . $_GET['dir'];
    }
    }
    
    if($_GET['download'] && $forcedownloads) {
    $file = str_replace('/', '', $_GET['download']);
    $file = str_replace('..', '', $file);
    
    if(file_exists($leadon . $file)) {
    header("Content-type: application/x-download");
    header("Content-Length: ".filesize($leadon . $file));
    header('Content-Disposition: attachment; filename="'.$file.'"');
    readfile($leadon . $file);
    die();
    }
    }
    
    if($allowuploads && $_FILES['file']) {
    $upload = true;
    if(!$overwrite) {
    if(file_exists($leadon.$_FILES['file']['name'])) {
    $upload = false;
    }
    }
    
    if($upload) {
    move_uploaded_file($_FILES['file']['tmp_name'], $leadon . $_FILES['file']['name']);
    }
    }
    
    $opendir = $leadon;
    if(!$leadon) $opendir = '.';
    if(!file_exists($opendir)) {
    $opendir = '.';
    $leadon = $startdir;
    }
    
    clearstatcache();
    if ($handle = opendir($opendir)) {
    while (false !== ($file = readdir($handle))) {
    //first see if this file is required in the listing
    if ($file == "." || $file == "..") continue;
    $discard = false;
    for($hi=0;$hi<sizeof($hide);$hi++) {
    if(strpos($file, $hide[$hi])!==false) {
    $discard = true;
    }
    }
    
    if($discard) continue;
    if (@filetype($leadon.$file) == "dir") {
    if(!$showdirs) continue;
    
    $n++;
    if($_GET['sort']=="date") {
    $key = @filemtime($leadon.$file) . ".$n";
    }
    else {
    $key = $n;
    }
    $dirs[$key] = $file . "/";
    }
    else {
    $n++;
    if($_GET['sort']=="date") {
    $key = @filemtime($leadon.$file) . ".$n";
    }
    elseif($_GET['sort']=="size") {
    $key = @filesize($leadon.$file) . ".$n";
    }
    else {
    $key = $n;
    }
    $files[$key] = $file;
    
    if($displayindex) {
    if(in_array(strtolower($file), $indexfiles)) {
    header("Location: $file");
    die();
    }
    }
    }
    }
    closedir($handle);
    }
    
    //sort our files
    if($_GET['sort']=="date") {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
    }
    elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
    }
    else {
    @natcasesort($dirs);
    @natcasesort($files);
    }
    
    //order correctly
    if($_GET['order']=="desc" && $_GET['sort']!="size") {$dirs = @array_reverse($dirs);}
    if($_GET['order']=="desc") {$files = @array_reverse($files);}
    $dirs = @array_values($dirs); $files = @array_values($files);
    
    
    ?>
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Annemarie Borg <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></title>
    <link rel="stylesheet" type="text/css" href="../dlf/styles.css" />
    <?
    if($showthumbnails) {
    ?>
    <script language="javascript" type="text/javascript">
    <!--
    function o(n, i) {
    document.images['thumb'+n].src = 'dlf/i.php?f='+i;
    
    }
    
    function f(n) {
    document.images['thumb'+n].src = 'dlf/trans.gif';
    }
    //-->
    </script>
    <?
    }
    ?>
    </head>
    <body>
    <div id="container">
    <h1>Annemarie Borg's Music <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></h1>
    <div id="breadcrumbs"> <a href="<?=$_SERVER['../PHP_SELF'];?>">home</a>
    <?
    $breadcrumbs = split('/', $leadon);
    if(($bsize = sizeof($breadcrumbs))>0) {
    $sofar = '';
    for($bi=0;$bi<($bsize-1);$bi++) {
    $sofar = $sofar . $breadcrumbs[$bi] . '/';
    echo ' &gt; <a href="'.$_SERVER['PHP_SELF'].'?dir='.urlencode($sofar).'">'.$breadcrumbs[$bi].'</a>';
    }
    }
    
    $baseurl = $_SERVER['PHP_SELF'] . '?dir='.$_GET['dir'] . '&amp;';
    $fileurl = 'sort=name&amp;order=asc';
    $sizeurl = 'sort=size&amp;order=asc';
    $dateurl = 'sort=date&amp;order=asc';
    
    switch ($_GET['sort']) {
    case 'name':
    if($_GET['order']=='asc') $fileurl = 'sort=name&amp;order=desc';
    break;
    case 'size':
    if($_GET['order']=='asc') $sizeurl = 'sort=size&amp;order=desc';
    break;
    
    case 'date':
    if($_GET['order']=='asc') $dateurl = 'sort=date&amp;order=desc';
    break;
    default:
    $fileurl = 'sort=name&amp;order=desc';
    break;
    }
    ?>
    </div>
    <div id="listingcontainer">
    <div id="listingheader">
    <div id="headerfile"><a href="<?=$baseurl . $fileurl;?>">File</a></div>
    <div id="headersize"><a href="<?=$baseurl . $sizeurl;?>">Size</a></div>
    <div id="headermodified"><a href="<?=$baseurl . $dateurl;?>">Last Modified</a></div>
    </div>
    <div id="listing">
    <?
    $class = 'b';
    if($dirok) {
    ?>
    <div><a href="<?=$_SERVER['../PHP_SELF'].'?dir='.urlencode($dotdotdir);?>" class="<?=$class;?>"><strong>..</strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($dotdotdir));?></a></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    $arsize = sizeof($dirs);
    for($i=0;$i<$arsize;$i++) {
    ?>
    <div><a href="<?=$_SERVER['../PHP_SELF'].'?dir='.urlencode($leadon.$dirs[$i]);?>" class="<?=$class;?>"><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$dirs[$i]));?></a></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    
    $arsize = sizeof($files);
    for($i=0;$i<$arsize;$i++) {
    $icon = 'unknown.png';
    $ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
    $supportedimages = array('gif', 'png', 'jpeg', 'jpg');
    $thumb = '';
    
    if($showthumbnails && in_array($ext, $supportedimages)) {
    $thumb = '<span><img src="dlf/trans.gif" alt="'.$files[$i].'" name="thumb'.$i.'" /></span>';
    $thumb2 = ' onmouseover="o('.$i.', \''.urlencode($leadon . $files[$i]).'\');" onmouseout="f('.$i.');"';
    
    }
    
    if($filetypes[$ext]) {
    $icon = $filetypes[$ext];
    }
    
    $filename = $files[$i];
    if(strlen($filename)>43) {
    $filename = substr($files[$i], 0, 40) . '...';
    }
    
    $fileurl = $leadon . $files[$i];
    if($forcedownloads) {
    $fileurl = $_SESSION['PHP_SELF'] . '?dir=' . urlencode($leadon) . '&download=' . urlencode($files[$i]);
    }
    
    ?>
    <div><a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em></a> <?=date ("M d Y h:i:s A", filemtime($leadon.$files[$i]));?><?=$thumb;?> <? echo"<a href=\"?dir=$leadon&delll=$files[$i]\">Delete</a>"; ?></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    ?></div>
    <?
    if($allowuploads) {
    $phpallowuploads = (bool) ini_get('file_uploads');
    $phpmaxsize = ini_get('upload_max_filesize');
    $phpmaxsize = trim($phpmaxsize);
    $last = strtolower($phpmaxsize{strlen($phpmaxsize)-1});
    switch($last) {
    case 'g':
    $phpmaxsize *= 9024;
    case 'm':
    $phpmaxsize *= 9024;
    }
    
    ?>
    <div id="upload">
    <div id="uploadtitle"><strong>File Upload</strong> (Max Filesize: <?=$phpmaxsize;?>KB)</div>
    <div id="uploadcontent">
    <?
    if($phpallowuploads) {
    ?>
    <form method="post" action="<?=$_SERVER['../PHP_SELF'];?>?dir=<?=urlencode($leadon);?>" enctype="multipart/form-data">
    
    <div align="left">
    <input type="file" name="file" />
    <input type="submit" value="Upload" />
    </div>
    </form>
    <?
    }
    else {
    ?>
    File uploads are disabled in your php.ini file. Please enable them.
    <?
    }
    ?>
    </div>
    
    </div>
    <?
    }
    ?>
    </div>
    </div>
    <div id="copy">Your name &copy;2008 <a href="http://ours.co.uk/">ours</a>. Design by <a href="http://www.ours.co.uk/">ours</a>.</div>
    </body>
    </html>
    
    Code (markup):
     
    happpy, Nov 14, 2008 IP
  3. swimmingfungus

    swimmingfungus Peon

    Messages:
    4
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Thank you so much Happy. I added the code to the upload.php file as I see the delete code you have entered. However I think I need to do a little bit more to get this to work - like a button?

    Do I have to add a button and then give it some kind of id?

    or do I call this button just "Delete"?

    Thanks again for you help!
     
    swimmingfungus, Nov 15, 2008 IP
  4. happpy

    happpy Well-Known Member

    Messages:
    926
    Likes Received:
    14
    Best Answers:
    0
    Trophy Points:
    120
    #4
    you should replace the whole code not just the top first line...
    there is a delete link in it.
     
    happpy, Nov 15, 2008 IP
  5. swimmingfungus

    swimmingfungus Peon

    Messages:
    4
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #5
    Hi Happy

    I have selected and place all of the code into the upload.php file. This and the uploaded mp3 files are all in the category file PHP on the root.

    I see the delete buttons that appear on the right side of each file uploaded on the form. However when I select the file and press the 'Delete' button nothing happens? The files are still showing both on the form and also they still remain in the PHP folder?

    Sorry to be a nuisance. Thanks again for your help. Can we change anything? :eek::eek::eek::eek:
     
    swimmingfungus, Nov 16, 2008 IP
  6. happpy

    happpy Well-Known Member

    Messages:
    926
    Likes Received:
    14
    Best Answers:
    0
    Trophy Points:
    120
    #6
    im sorry, without a given subdir the delete did not fully work.
    i fixed that
    <?
    
    if($delll==""){}else{ if($_GET[dir]=="") { $_GET[dir]="."; }unlink("$_GET[dir]/$_GET[delll]"); echo"<h1>$_GET[delll] DELETED!</h1>";}
    
    $startdir = '.';
    $showthumbnails = true;
    $showdirs = false;
    $forcedownloads = true;
    $hide = array(
    'dlf',
    'upload.php',
    'Thumbs',
    '.htaccess',
    '.htpasswd',
    'whats_on.html',
    'statement.html',
    'music.html',
    'links.html',
    'index.html',
    'gallery_5.html',
    'gallery_2.html',
    'gallery.htm',
    'contact.html',
    'biography.html',
    'Templates',
    'music',
    'images',
    'CSS'
    );
    
    $displayindex = false;
    $allowuploads = true;
    $overwrite = true;
    
    
    $indexfiles = array (
    'index.html',
    'index.htm',
    'default.htm',
    'default.html'
    );
    
    $filetypes = array (
    'png' => 'jpg.gif',
    'jpeg' => 'jpg.gif',
    'bmp' => 'jpg.gif',
    'jpg' => 'jpg.gif',
    'gif' => 'gif.gif',
    'zip' => 'archive.png',
    'rar' => 'archive.png',
    'exe' => 'exe.gif',
    'setup' => 'setup.gif',
    'txt' => 'text.png',
    'htm' => 'html.gif',
    'html' => 'html.gif',
    'fla' => 'fla.gif',
    'swf' => 'swf.gif',
    'xls' => 'xls.gif',
    'docx' => 'doc.gif',
    'sig' => 'sig.gif',
    'fh10' => 'fh10.gif',
    'pdf' => 'pdf.gif',
    'psd' => 'psd.gif',
    'rm' => 'real.gif',
    'mpg' => 'video.gif',
    'mpeg' => 'video.gif',
    'mov' => 'video2.gif',
    'avi' => 'video.gif',
    'eps' => 'eps.gif',
    'gz' => 'archive.png',
    'asc' => 'sig.gif',
    );
    
    error_reporting(0);
    if(!function_exists('imagecreatetruecolor')) $showthumbnails = false;
    $leadon = $startdir;
    if($leadon=='.') $leadon = '';
    if((substr($leadon, -1, 1)!='/') && $leadon!='') $leadon = $leadon . '/';
    $startdir = $leadon;
    
    if($_GET['dir']) {
    //check this is okay.
    
    if(substr($_GET['dir'], -1, 1)!='/') {
    $_GET['dir'] = $_GET['dir'] . '/';
    }
    
    $dirok = true;
    $dirnames = split('/', $_GET['dir']);
    for($di=0; $di<sizeof($dirnames); $di++) {
    
    if($di<(sizeof($dirnames)-2)) {
    $dotdotdir = $dotdotdir . $dirnames[$di] . '/';
    }
    
    if($dirnames[$di] == '..') {
    $dirok = false;
    }
    }
    
    if(substr($_GET['dir'], 0, 1)=='/') {
    $dirok = false;
    }
    
    if($dirok) {
    $leadon = $leadon . $_GET['dir'];
    }
    }
    
    if($_GET['download'] && $forcedownloads) {
    $file = str_replace('/', '', $_GET['download']);
    $file = str_replace('..', '', $file);
    
    if(file_exists($leadon . $file)) {
    header("Content-type: application/x-download");
    header("Content-Length: ".filesize($leadon . $file));
    header('Content-Disposition: attachment; filename="'.$file.'"');
    readfile($leadon . $file);
    die();
    }
    }
    
    if($allowuploads && $_FILES['file']) {
    $upload = true;
    if(!$overwrite) {
    if(file_exists($leadon.$_FILES['file']['name'])) {
    $upload = false;
    }
    }
    
    if($upload) {
    move_uploaded_file($_FILES['file']['tmp_name'], $leadon . $_FILES['file']['name']);
    }
    }
    
    $opendir = $leadon;
    if(!$leadon) $opendir = '.';
    if(!file_exists($opendir)) {
    $opendir = '.';
    $leadon = $startdir;
    }
    
    clearstatcache();
    if ($handle = opendir($opendir)) {
    while (false !== ($file = readdir($handle))) {
    //first see if this file is required in the listing
    if ($file == "." || $file == "..") continue;
    $discard = false;
    for($hi=0;$hi<sizeof($hide);$hi++) {
    if(strpos($file, $hide[$hi])!==false) {
    $discard = true;
    }
    }
    
    if($discard) continue;
    if (@filetype($leadon.$file) == "dir") {
    if(!$showdirs) continue;
    
    $n++;
    if($_GET['sort']=="date") {
    $key = @filemtime($leadon.$file) . ".$n";
    }
    else {
    $key = $n;
    }
    $dirs[$key] = $file . "/";
    }
    else {
    $n++;
    if($_GET['sort']=="date") {
    $key = @filemtime($leadon.$file) . ".$n";
    }
    elseif($_GET['sort']=="size") {
    $key = @filesize($leadon.$file) . ".$n";
    }
    else {
    $key = $n;
    }
    $files[$key] = $file;
    
    if($displayindex) {
    if(in_array(strtolower($file), $indexfiles)) {
    header("Location: $file");
    die();
    }
    }
    }
    }
    closedir($handle);
    }
    
    //sort our files
    if($_GET['sort']=="date") {
    @ksort($dirs, SORT_NUMERIC);
    @ksort($files, SORT_NUMERIC);
    }
    elseif($_GET['sort']=="size") {
    @natcasesort($dirs);
    @ksort($files, SORT_NUMERIC);
    }
    else {
    @natcasesort($dirs);
    @natcasesort($files);
    }
    
    //order correctly
    if($_GET['order']=="desc" && $_GET['sort']!="size") {$dirs = @array_reverse($dirs);}
    if($_GET['order']=="desc") {$files = @array_reverse($files);}
    $dirs = @array_values($dirs); $files = @array_values($files);
    
    
    ?>
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Annemarie Borg <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></title>
    <link rel="stylesheet" type="text/css" href="../dlf/styles.css" />
    <?
    if($showthumbnails) {
    ?>
    <script language="javascript" type="text/javascript">
    <!--
    function o(n, i) {
    document.images['thumb'+n].src = 'dlf/i.php?f='+i;
    
    }
    
    function f(n) {
    document.images['thumb'+n].src = 'dlf/trans.gif';
    }
    //-->
    </script>
    <?
    }
    ?>
    </head>
    <body>
    <div id="container">
    <h1>Annemarie Borg's Music <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></h1>
    <div id="breadcrumbs"> <a href="<?=$_SERVER['../PHP_SELF'];?>">home</a>
    <?
    $breadcrumbs = split('/', $leadon);
    if(($bsize = sizeof($breadcrumbs))>0) {
    $sofar = '';
    for($bi=0;$bi<($bsize-1);$bi++) {
    $sofar = $sofar . $breadcrumbs[$bi] . '/';
    echo ' &gt; <a href="'.$_SERVER['PHP_SELF'].'?dir='.urlencode($sofar).'">'.$breadcrumbs[$bi].'</a>';
    }
    }
    
    $baseurl = $_SERVER['PHP_SELF'] . '?dir='.$_GET['dir'] . '&amp;';
    $fileurl = 'sort=name&amp;order=asc';
    $sizeurl = 'sort=size&amp;order=asc';
    $dateurl = 'sort=date&amp;order=asc';
    
    switch ($_GET['sort']) {
    case 'name':
    if($_GET['order']=='asc') $fileurl = 'sort=name&amp;order=desc';
    break;
    case 'size':
    if($_GET['order']=='asc') $sizeurl = 'sort=size&amp;order=desc';
    break;
    
    case 'date':
    if($_GET['order']=='asc') $dateurl = 'sort=date&amp;order=desc';
    break;
    default:
    $fileurl = 'sort=name&amp;order=desc';
    break;
    }
    ?>
    </div>
    <div id="listingcontainer">
    <div id="listingheader">
    <div id="headerfile"><a href="<?=$baseurl . $fileurl;?>">File</a></div>
    <div id="headersize"><a href="<?=$baseurl . $sizeurl;?>">Size</a></div>
    <div id="headermodified"><a href="<?=$baseurl . $dateurl;?>">Last Modified</a></div>
    </div>
    <div id="listing">
    <?
    $class = 'b';
    if($dirok) {
    ?>
    <div><a href="<?=$_SERVER['../PHP_SELF'].'?dir='.urlencode($dotdotdir);?>" class="<?=$class;?>"><strong>..</strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($dotdotdir));?></a></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    $arsize = sizeof($dirs);
    for($i=0;$i<$arsize;$i++) {
    ?>
    <div><a href="<?=$_SERVER['../PHP_SELF'].'?dir='.urlencode($leadon.$dirs[$i]);?>" class="<?=$class;?>"><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$dirs[$i]));?></a></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    
    $arsize = sizeof($files);
    for($i=0;$i<$arsize;$i++) {
    $icon = 'unknown.png';
    $ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
    $supportedimages = array('gif', 'png', 'jpeg', 'jpg');
    $thumb = '';
    
    if($showthumbnails && in_array($ext, $supportedimages)) {
    $thumb = '<span><img src="dlf/trans.gif" alt="'.$files[$i].'" name="thumb'.$i.'" /></span>';
    $thumb2 = ' onmouseover="o('.$i.', \''.urlencode($leadon . $files[$i]).'\');" onmouseout="f('.$i.');"';
    
    }
    
    if($filetypes[$ext]) {
    $icon = $filetypes[$ext];
    }
    
    $filename = $files[$i];
    if(strlen($filename)>43) {
    $filename = substr($files[$i], 0, 40) . '...';
    }
    
    $fileurl = $leadon . $files[$i];
    if($forcedownloads) {
    $fileurl = $_SESSION['PHP_SELF'] . '?dir=' . urlencode($leadon) . '&download=' . urlencode($files[$i]);
    }
    
    ?>
    <div><a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em></a> <?=date ("M d Y h:i:s A", filemtime($leadon.$files[$i]));?><?=$thumb;?> <? echo"<a href=\"?dir=$leadon&delll=$files[$i]\">Delete</a>"; ?></div>
    <?
    if($class=='b') $class='w';
    else $class = 'b';
    }
    ?></div>
    <?
    if($allowuploads) {
    $phpallowuploads = (bool) ini_get('file_uploads');
    $phpmaxsize = ini_get('upload_max_filesize');
    $phpmaxsize = trim($phpmaxsize);
    $last = strtolower($phpmaxsize{strlen($phpmaxsize)-1});
    switch($last) {
    case 'g':
    $phpmaxsize *= 9024;
    case 'm':
    $phpmaxsize *= 9024;
    }
    
    ?>
    <div id="upload">
    <div id="uploadtitle"><strong>File Upload</strong> (Max Filesize: <?=$phpmaxsize;?>KB)</div>
    <div id="uploadcontent">
    <?
    if($phpallowuploads) {
    ?>
    <form method="post" action="<?=$_SERVER['../PHP_SELF'];?>?dir=<?=urlencode($leadon);?>" enctype="multipart/form-data">
    
    <div align="left">
    <input type="file" name="file" />
    <input type="submit" value="Upload" />
    </div>
    </form>
    <?
    }
    else {
    ?>
    File uploads are disabled in your php.ini file. Please enable them.
    <?
    }
    ?>
    </div>
    
    </div>
    <?
    }
    ?>
    </div>
    </div>
    <div id="copy">Your name &copy;2008 <a href="http://ours.co.uk/">ours</a>. Design by <a href="http://www.ours.co.uk/">ours</a>.</div>
    </body>
    </html>
    
    Code (markup):
     
    happpy, Nov 18, 2008 IP
  7. swimmingfungus

    swimmingfungus Peon

    Messages:
    4
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #7
    Hi Happy

    Im really sorry about this but the delete button still doesn’t work? And for some reason the date text has changed and is now oversized.

    Just to help you out this is the file string

    www.mysite.co.uk/php/upload.php

    in the PHP file are the uploaded files and the upload.php itself.

    Does your button delete the file from the PHP or dose it just kill the link shown on the form?

    Sorry to be a pain. I will make sure to drop you some kind of payment once we have this done.

    Regards :):)
     
    swimmingfungus, Nov 19, 2008 IP