Jump to content

Zaaka72

New Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by Zaaka72

  1. I have a PHP script that locates a photo in a MySQL database and based on the path /filename stored in the database, retrieves the file and downloads it via the browser, the problem is that it saves as a filename that is the url with no extension.

    so we pass : dlfile.php?id-10 the script is supposed to get the filename from the stored file and download it with that filename but it downloads the file as 'dlfile?id=10' instead of PIC76534.jpg. where am i going wrong? code below for dlfile.php.

    or is there a way to ask the user to select a filename when downloading?  I know the script is crude but have had it for ages.

    <?php
    require( '../js/db.php' );
    $id = $_GET[ 'id' ];
    $sql = "SELECT * FROM image_archive WHERE id = " . $id;
    $result = mysqli_query( $conn, $sql );
    if ( !$result ) {
    	echo "ERROR: " . mysqli_error( $conn );
    } else {
    	$row=mysqli_fetch_assoc($result);
    	//path to the picture you're wanting the viewer to download
    	$path = "/archimages/".basename($row['pic_OriginalPath']);
    
    	if ( file_exists( $path ) ) {
    		//split the extension and name from eachother
    		$e = explode( '.', $path );
    
    		//get the name of the file
    		$file_name = $e[ 0 ];
    
    		//image extension
    		$extension = $e[ 1 ];
    
    		// Send a header saying we'll be displaying a picture
    		header( 'Content-type: '.$row['pic_Type'] );
    
    		// Name the file
    		header( 'Content-Disposition: attachment; filename="' . $file_name . $extension . '"' );
    
    		// Path to the picture you're wanting the user/viewer to download
    		readfile( $file_name . '.' . $extension );
    	} else {
    		echo 'The requested image does not exist.'.$path.'<hr>';
    	}
    }
    ?>

     

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