Announcement

Collapse
No announcement yet.

help with changing some coding plz

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • help with changing some coding plz

    Hi im stuck trying to change this code so instead of showing images it will show .exe .zip .rar .gz in a list/table form so people can click and download the file.

    many thanks in advance if i dont crack it.

    PHP Code:
    <?PHP
    if (!$fp = @opendir($folder)) {
        echo(
    "<b>Error: No files found</b><br><br>\n");
    } else {
        while (
    $file readdir($fp))
        {
            
    $name[] = $file;
        }

        @
    closedir($fp);
        
    sort ($name);
        
    $count 0;

        for (
    $i 0$i sizeof($name); $i++) 
        {
            if (
    $name[$i] != "." && $name[$i] != "..") {
                
    $ext array_reverse(explode("."$name[$i]));
                if (
    $ext[0] == "jpg" || $ext[0] == "JPG" || $ext[0] == "jpeg" || $ext[0] == "JPEG" || $ext[0] == "png" || $ext[0] == "PNG" || $ext[0] == "gif" || $ext[0] == "GIF" || $ext[0] == "bmp" || $ext[0] == "BMP")
                {
                    echo 
    "<img src=\"$folder/$name[$i]\"><br><br>\n";
                    
    $count++;
                }
            }
        } 

        if (
    $count == 0
        {
            echo 
    "<b>No Pictures found</b><br><br>\n";
        }

    }

    ?>

  • #2
    A possible solution

    Here is a possible solution, without knowing all of the details, I can't be sure that this will be a final answer. This is just my advice, I hope it can be helpful.

    -Adam

    PHP Code:
    <?PHP
    // make sure folder has a trailing slash
    $folder str_replace("\\\\"'/'$folder);
    $slash substr($folder, -1);
    if(
    $slash != '/')
    {
      
    $folder $folder '/'
    }
    // attempt to open the directory.
    // here we are assuming that $folder is
    // a path relative to the webroot (or virtual
    // directory should that be the case). If
    // it is not, the links generated below will
    // not work on any computer except the server itself.
    // To do this properly, it would be best to specify a
    // full path to the root we are using and open the
    // directory listing like:
    // if (!$fp = @opendir($webroot . $folder))
    if (!$fp = @opendir($folder))
    {
      echo(
    "<b>Error: No files found</b><br><br>\n");
    }
    else
    {
      
    // read all file names into an array
      
    $name = array();
      while (
    $file readdir($fp))
      {
        if((
    $file != '.') && ($file != '..'))
        {
          
    $name[] = $file;
        }
      }
      @
    closedir($fp);
      
    sort ($name);
      
      
    // created a list of allowed extensions (all lowercase)
      
    $allowed = array();
      
    array_push($allowed'exe');
      
    array_push($allowed'zip');
      
    array_push($allowed'rar');
      
    array_push($allowed'gz');
      
      
    // display all files with extension in the allowed list
      
    $count 0;
      for(
    $i=0;$i<count($name);$i++)
      {
        
    $filename $name[$i];
        
    // get the lowercase extension
        
    $filenameParts explode("."$filename);
        
    $lastPart count($filenameParts) - 1;
        
    $ext strtolower($filenameParts[$lastPart]);
        
    // check if the extension is legal
        
    if(in_array($ext$allowed))
        {
          
    $filepath $folder $filename;
          
    $link '<a href="' $filepath '">' $filename '</a>';
          echo 
    "$link<br>\n";
          
    $count++;
        }
      }
      if (
    $count == 0)
      {
        echo 
    "No legal files found<br>\n";
      }
    }
    ?>

    Comment


    • #3
      cool thanks works a treat

      Comment


      • #4
        done a small change makes it easier to fiddle with

        changed this
        PHP Code:
        // make sure folder has a trailing slash
        $folder str_replace("\\\\"'/'$folder);
        $slash substr($folder, -1);
        if(
        $slash != '/')
        {
          
        $folder $folder '/'
        }
        // attempt to open the directory.
        // here we are assuming that $folder is
        // a path relative to the webroot (or virtual
        // directory should that be the case). If
        // it is not, the links generated below will
        // not work on any computer except the server itself.
        // To do this properly, it would be best to specify a
        // full path to the root we are using and open the
        // directory listing like:
        // if (!$fp = @opendir($webroot . $folder)) 
        to something simplier
        PHP Code:
        $folder "downloads/"

        Comment

        widgetinstance 262 (Related Topics) skipped due to lack of content & hide_module_if_empty option.
        Working...
        X