There's a common requirement to manage binary data - upload from a user, store, bring back in a web page. And where you have a substantial number of pieces of data - a lot of .pdf documents, .jpg or .gif images, or even Word documents, you'll wish to store them in a database with the potential for keyword and title fields to help in your indexing, and for efficiency of data structure.
Forms can easily be written to upload binary files - although you do need to remember to set the encoding type. PHP can handle the received data and put it to an SQL database ... and can front the retrieval too. The code is short in each case, but I wouldn't say it's simple - you need to understand a lot of what's going on. If you would like to look at my scripts to learn from them ... they're available:
Upload form
Script to store uploaded .pdf to a database
Script to return latest .pdf for you to view
You're even welcome to try out the scripts -
upload form which runs the store script when submitted and
retreive latest .pdf.
Note - (a) This will also work with .jpg and .gif files if you change the
header call in the pdfget script. (b) Please be careful what you upload in our test script - until another upload is done, the world can read it. (c) We offer an alternative image upload example
here with more useful tips on binary data upload and handling.
(written 2006-12-19, updated 2008-12-21)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
W511 - Web and Intranet - Further Aspects [528] Getting favicon to work - avoiding common pitfalls - (2005-12-14)
[876] Making pages clearer - easy Disability Discrimination Act Compliance - (2006-09-23)
[1187] Updating a page strictly every minute (PHP, Perl) - (2007-05-14)
[1970] Plagarism - who is copying my pages? - (2009-01-02)
H110 - PHP - HTML Web Page Data Handling [50] Current cost in your local currency - (2004-09-16)
[589] Robust PHP user inputs - (2006-02-03)
[789] Hot answers in PHP - (2006-07-02)
[896] PHP - good coding practise and sticky radio buttons - (2006-10-17)
[1053] Sorting people by name in PHP - (2007-01-26)
[1136] Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06)
[1169] Emailing as HTML (Web Page) - PHP example - (2007-04-30)
[1831] Text formating for HTML, with PHP - (2008-10-11)
[2025] Injection Attack if register_globals in on - PHP - (2009-02-04)
[2046] Finding variations on a surname - (2009-02-17)
[2107] How to tweet automatically from a blog - (2009-03-28)
[2135] What features does this visitors browser support? (PHP) - (2009-04-22)
[3036] Sending out an email containing HTML from within a PHP page - (2010-11-07)
[3926] Filtering PHP form inputs - three ways, but which should you use? - (2012-11-18)
G996 - Well House Consultants - Newsletter Scripts [1066] Final, Finally and Finalize - three special words in Java - (2007-02-05)
[1123] mysqldump and mysqlrestore - (2007-03-30)
[1217] What are factory and singleton classes? - (2007-06-04)
[1321] Resetting session based tests in PHP - (2007-08-26)
[1387] Error logging to file not browser in PHP - (2007-10-11)
[1487] Efficient PHP applications - framework and example - (2007-12-28)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1601] Replacing the last comma with an and - (2008-04-04)
[1665] Factory method example - Perl - (2008-06-04)
[1743] First class functions in Lua lead to powerful OO facilities - (2008-08-07)
[1813] Ajax - going Asyncronous and what it means - (2008-09-28)
[1954] mod_rewrite for newcomers - (2008-12-20)
[2145] Using the internet to remotely check for power failure at home (PHP) - (2009-04-29)
[2259] Grouping rows for a summary report - MySQL and PHP - (2009-06-27)
[2360] Error Handling in Lua with assert and pcall - (2009-08-13)
[2433] Controlling, supressing, enabling PHP error messages - (2009-10-02)
[2539] Changing Images - (2009-12-17)
[3179] Oops - I typed ci not vi, and have lost my file ... - (2011-02-21)
Some other Articles
Stirling at nightOld dog, old tricksRoom at the Inn, Guy at the stationMeet the neighbours.pdf files - upload via PHP, store in MySQL, retrieveOne Thousand Posts and still going strongCascading and the busesThe year of the exploding projectorMost recent file in a directory - PHPSetting your colour theme through PHP