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
https://forums.phpfreaks.com/topic/290142-locate-file-via-form-search-string/
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";
}
}
?>

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.

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.