Jump to content

Locate File Via Form Search String


CBaZ

Recommended Posts

Currently I am using a script that displays the entire directory.  However I am trying to use preg_match to try and figure out

how to just link to one file from the directory via a search string from a form.

 

I am probably not even close so please bare with me :)

<?php

if (isset($_POST['filelook'])) {
$filez = $_POST['filelook'];
}
   /*
   edit $path to the directory you want to use
   edit $file_types to change the file types to show
   */
   function file_type($file)
   {
       $searchString = $filez;	
       $path_chunks = explode("/", $file);
       $thefile = $path_chunks[count($path_chunks) - 1];
       $dotpos = strrpos($thefile, ".");
       return strtolower(substr($thefile, $dotpos + 1));
   }
   $file_count = 0;
   $path = "./WinFiles/files";
   $file_types = array('png', 'jpg');
   $p = opendir($path);
       while (false !== ($filelook = readdir($p))) 
	   {
           $files[] = $filelook;
       }
   sort($files);
   echo "<b> Your file results:</b><br> ";
      
		   
           if (file_exists($filez) && is_readable($filez) && preg_match($filez)) {
		   
		echo '<a href="download.php?f='.$filez.'">'.$filez.'</a> <br/>';
			  
			   
			   //find filename like name searched for...

         
   if($file_count == 0)
   {
       echo "<b>No file match your file types</b>";
   }

     
    	   
           
			  
			   
			   
		   
		   }
 
?>
Link to comment
Share on other sites

I made it a bit more simple.  But one of the things I am dealing with now is that it also echo's out the directory I just want it to echo out the filename.

<?php

if (isset($_POST['filelook'])) {
$filez = $_POST['filelook'];
$filename = "/WinFiles/files/$filez";

if (file_exists($filename)) {
    echo '<a href="download.php?f='.$filename.'">'.$filename.'</a> <br/>';
} else {
    echo "The file $filename does not exist";
}
}
?>
Link to comment
Share on other sites

Something else must be going on somewhere else because the code in your last post wouldn't echo out a directory.

 

Also, you are creating a HTML link with a query string, which means the variables in the query string would be retrieved from the $_GET superglobal, but you are trying to get it from the $_POST superglobal.

 

You might also want to look into PHP's glob function, which would make this a bit easier.

Edited by CroNiX
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.