depends on the size of the PDF.
A huge PDF I'd probably opt to store in the filesystem, but ones that are small and part of a content system it's handy just to store them as a gzipped string in the db.
My thinking here was that there are many many pdf's being uploaded, they each only live for 60 days, the largest size allowed is 2 megs. The problem here (and the reason I put them in the D😎 is that so many will be uploaded and there is only x-amount of space on the server. So compression is required. So the choice was between making a gzipped file and then unzipping it on the filesystem and then displaying it, or to gzcompress the string and store it in a dbtable set up just for that purpose and gzuncompress the db result set.
Here the usage of the DB won because it allowed better content management for actually handling the data on a time dispursed basis as well as piping out the data in PHP script affording to ensure that a session was in place and that the user should be the one viewing the file, which is better security, and thus back to the point here.