Solved

Uploading file: MAX_FILE_SIZE gives $_FILES["file"]["type"] != "application/pdf" error

Posted on 2012-04-12
5
375 Views
Last Modified: 2012-04-12
Hi,

My file upload script worked correctly until i added:
<input type='hidden' name='MAX_FILE_SIZE' value='10000'>

Now when uploading a pdf file, bigger or smaller than 10000 i get the error i set for a file not being: $_FILES["file"]["type"] != "application/pdf".

When i remove the MAX_FILE_SIZE the error does not appear, and uploading works well again.
What's going on here?

Thanks
0
Comment
Question by:peps03
  • 2
  • 2
5 Comments
 
LVL 22

Accepted Solution

by:
Kim Walker earned 500 total points
ID: 37836990
Depending on the browser, if your file is bigger than about 10K it will not send a file at all. So the file type would be null which is != "application/pdf".
0
 

Author Comment

by:peps03
ID: 37837020
Ah, i see. great!
Changing the order of the error messaging worked.
Now i first get the error the file is to big.

Thanks!
May i be so cheeky to ask you 1 more thing before accepting your answer?

Is there a way to check if a pdf is really a pdf? Changing a image's extension (.jpg) to pfd still uploads..
0
 
LVL 22

Expert Comment

by:Kim Walker
ID: 37837042
I'm afraid I don't the answer to that. You'd probably need to read the file header and check for a particular match. But I don't know what you'd need to look for.
0
 

Author Closing Comment

by:peps03
ID: 37837058
Ok, thanks again!
0
 
LVL 20

Expert Comment

by:Mark Brady
ID: 37837085
You can check the file type by using php's inbuilt "$_FILES['file']['type']" on your receiving form/script. Usually the users browser will send the file type information as well so insteadd of checking only for the file extension (which is not a guarantee of file type) you should run another check on the actual type. To get the type you would use:

$file_type = $_FILES['file']['type']; // Now the variable $file_type should contain the in formation you want. Echo the result to see the format it provides then write your checking code to suit.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to prepare an HTML email signature template file containing dynamic placeholders for users' Azure AD data. Furthermore, it explains how to use this file to remotely set up a department-wide email signature policy in Office …
Find out what you should include to make the best professional email signature for your organization.
In this tutorial viewers will learn how to code links for mobile sites that, once clicked, send a call or text to a specified number. For a telephone link (once clicked, calls a number), begin with a normal "<a href=" link tag. For the href, specify…
In this tutorial viewers will learn how to style a corner ribbon overlay for an image using CSS Create a new class by typing ".Ribbon":  Define the class' "display:" as "inline-block": Define its "position:" as "relative": Define its "overflow:" as …

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question