Ishank Sainger
Ishank Sainger

Reputation: 51

FPDF error: Unsupported image type: image/jpeg

if(isset($_POST['sumit']))
  { 

   $con = mysqli_connect("localhost","root","","school");
       if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  } 

 $sname=$_POST['sname'];
  $category=$_POST['category'];
 $sadd=$_POST['sadd'];
 $file_name=$_FILES['file']['name'];
  $temp_name=$_FILES['file']['tmp_name'];
  $file_size = $_FILES['file']['size'];
 $file_type = $_FILES['file']['type'];

   $target_path  =  "Newfolder1";
$sql="SELECT * FROM imagetable WHERE   sname='$sname' and sadd='$sadd'and category='$category' and file='$target_path'";
 $result1 = mysqli_query($con, $sql);
  if(!mysqli_query($con, $sql)){
                die( "Could not execute sql: $sql"); 
                 }
$row = mysqli_fetch_row($result1);
$file=$row[0];


  $pdf=new fpdf();
$pdf->ADDPage();
$pdf->setfont('Arial','B', 16);

$pdf->Image($file,150,25,50,20,$file_type);


$pdf->Cell(0,10,'id',0,1);
$pdf->Cell(0,10,'sadd',0,1);
$pdf->Cell(0,10,'category',0,1);
$pdf->Cell(0,10,'sname',0,1);

$pdf->Output();}

This is giving me the image type but all this is being done through database my image type is being defined in the db but I don't know. I'm gettting the error. If anyone could find out the error please reply

Upvotes: 2

Views: 12991

Answers (2)

Rajdeep Paul
Rajdeep Paul

Reputation: 16963

The problem is, you're specifying the mime type in $file_type variable(like image/png or image/jpeg) and using that in the Image() method. You should only specify the image format. Possible values are (case insensitive): JPG, JPEG, PNG and GIF.

So first get the image format, like this:

$image_format = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));

And then call the Image() method like this:

$pdf->Image($file,150,25,50,20,$image_format);

Edited:

Change your INSERT query like this,

$image_path = $target_path . DIRECTORY_SEPARATOR . $file_name;
if(move_uploaded_file($temp_name, $image_path)) { 
    $qry="INSERT INTO imagetable (file, sname, category, sadd, type,size, content ) values ('".$image_path."','".$sname."','".$category."','".$sadd."', '".$file_type."','".$file_size."', '".$Content."')"; 
    mysqli_query($con,$qry) or die("error in $qry == ----> ".mysqli_error()); 
}

And change your SELECT statement like this,

// your code    

$target_path = "Newfolder1" . DIRECTORY_SEPARATOR . $file_name;
$sql="SELECT * FROM imagetable WHERE   sname='$sname' and sadd='$sadd'and category='$category' and file='$target_path'";

// your code

Upvotes: 2

Kevin S
Kevin S

Reputation: 173

$pdf->Image("image/$user-signature.png" ,100, 213,-300);

This format works for me. Try removing $file and putting quotes around $filetype

Upvotes: 0

Related Questions