I'm trying create a website where you can upload a file and afterwards you can download it to your local computer. I'm doing this by storing the the file in a blob and also storing the size of the file and the mime type of the file as well, now this is working as expected.
What I want to do now is to download that blob of data and restore it to its original format. For example if I uploaded a test.docx file in the database I can download test.docx as it was before.
I am managing to make it download but the problem I'm having is that it's downloading the HTML in the page and the blob is a bin (A lot of symbols).
Download.php
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$dbUser = "root";
$dbPassword = "root";
$dsn ='mysql:host=localhost;dbname=filerepository';
$dbh = new PDO($dsn,$dbUser,$dbPassword);
$query = "SELECT ID,Title FROM FoldersFiles";
foreach($dbh->query($query,PDO::FETCH_ASSOC) as $row)
{
?>
<a href="download.php?id=<?php echo $row['ID'];?>"><?php echo $row['Title'];?></a> <br>
<?php
}
if(isset($_GET['id']))
{
$query2 = "SELECT Title,Format,Content,FileSize FROM FoldersFiles WHERE ID = ?";
$sth = $dbh->prepare($query2);
$sth->execute(array($_GET['id']));
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $row)
{
$size = $row['FileSize'];
$type = $row['Format'];
$title = $row['Title'];
$content = $row['Content'];
}
require_once('/var/www/uploadFile/downloadFile.php');
Download($size,$type,$title,$content);
}
?>
</body>
</html>
downloadFile.php
<?php
function Download($size,$type,$title,$content)
{
header("Content-Length: $size");
header("Content-Type: $type");
header("Content-Disposition: attachment; filename=\"$title\"");
echo $content;
}
I have split them because there was a similar problem where he fixed it by doing that but I still am having the problem.
I am using Ubuntu as my OS to develop this website, might this affect it? Also when I download the file it doesn't download in any format.
Data being downloaded
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<a href="download.php?id=46">Main</a> <br>
<a href="download.php?id=65">ICE</a> <br>
<a href="download.php?id=66">PHP</a> <br>
<a href="download.php?id=67">National Diploma Year 2</a> <br>
<a href="download.php?id=68">National Diploma Year 1</a> <br>
<a href="download.php?id=73">Semester 1</a> <br>
<a href="download.php?id=74">Object Orient Programing</a> <br>
<a href="download.php?id=75">Presentations</a> <br>
<a href="download.php?id=76">Homework</a> <br>
<a href="download.php?id=106">test</a> <br>
<a href="download.php?id=108">test</a> <br>
<a href="download.php?id=109">Main</a> <br>
<a href="download.php?id=111">File Repository</a> <br>
<a href="download.php?id=114">Documentation</a> <br>
<a href="download.php?id=115">Documentation</a> <br>
<a href="download.php?id=125">test</a> <br>
PK\0\0\0\0\0!\02‘oWf\0\0¥\0\0\0[Content_Types].xml ¢( \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0´”ËjÃ0E÷…þƒÑ¶ØJº(¥ÄÉ¢ehúŠ4NDõB£¼þ¾ã81¥$14ÉÆ ÏÜ{Ï1ƒÑÚšl µw%ë=–“^i7+Ù×ä-d&á”0ÞAÉ6€l4¼½L60#µÃ’ÍS
Oœ£œƒXø\0Ž*•V$:ÆB~‹ðû^ïK︔§Úƒ
/P‰…IÙëš~7$²ì¹i¬³J&B0ZŠDu¾têOJ¾K(H¹íÁ¹xG
ŒL¨+Çvººš¨dcÓ»°ÔÅW>*®¼\\XR§mpúªÒZ}í¢—€HwnMÑV¬ÐnÏ”Ã-ì\")/ÒZwB`ÚÀË4¾Ýñ ®°sîDXÁôój¿Ì;A*ʈ©Ëc´Ö‰Ö\04ßþÙ[›S‘Ô9Ž> •ø±÷{£Vç4p€˜ôéW×&’õÙóA½’¨Ù|»d‡?\0\0\0ÿÿ\0PK\0\0\0\0\0!\0‘·ï\0\0\0N\0\0\0_rels/.rels ¢( \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬’ÁjÃ0@ïƒýƒÑ½QÚÁ£N/cÐÛÙ[ILÛØj×þý<ØØ]éaGËÒÓ“ÐzsœFuà”]ð–U
Š½ Öù^Ã[û¼x\0•…¼¥1xÖpâ›æöfýÊ#I)ʃ‹YŠÏ‘øˆ˜ÍÀå*Döå§i\")ÏÔc$³£žqU×÷˜~3 ™1ÕÖjH[{ª=E¾†ºÎ~
f?±—3-ÂÞ²]ÄTꓸ2j)õ,l0/%œ‘b¬
ð¼Ñêz£¿§Å‰…, ¡ ‰/û|f\\ZþçŠæ?6ï!Y´_áoœ]Aó\0\0ÿÿ\0PK\0\0\0\0\0!\0³¾‹\0\0¶\0\0\0word/_rels/document.xml.rels ¢( \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¬“ÍjÃ0„ï…¾ƒØ{-;mC ‘s)\\[÷d{ýCõc¤MZ¿}EJ‡ÓƒŽ3bg¾…Õzó; ó½5²$†¦²uoZÅöá˜\'ij©¬A#zØä÷wë7T’ÂïúÁ³b¼€ŽhXqô‰Ð„—Æ:-)H×òAVŸ²E¾HÓ%wÓȯ2Ù®àvõ#°bð?Ù¶iú
_mµ×hèF÷H6ó!SºIÀÉIBðÛ‹¨4*œõ\\}³Þìu‰.l|!8[s˘fñp”¿f6Çð“¡±†
Yª ÇÙšƒxŠ ñ…åûŸ“œ˜\'~õÛò\0\0\0ÿÿ\0PK\0\0\0\0\0!\0K”¸ÄÅ0\0\0ž4\0\0\0\0word/document.xmlì}ëŽã¶¶æÿæ„š?`\'-RÔæ$gtMé=éN‚ó+PÙ¬²vÛ’¤êJå×~Œ3Àpžå<Ê~’!)Ë%«lëbٖ啽Ñ*S²Lr}ëÊÅÅù×?séMÒ0Ž¾½AßÈ7&ñ4Œ¾½ùõ“ÿµq#¥YMƒyÑoožizó¯ßý÷ÿö/O·Óxò¸ Q&±WDéíÓròíÍ,Ë–·oߦ“]é7‹p’Äi|Ÿ}3‰oãûûpBß>ÅÉô-–‘,þZ&ñ„¦)û=\'ˆ¾éÍêu‹×o‹—4b7ïãddìcòðv$Ÿ—_³·/ƒ,¼çaöÌÞ-kÅkâoo“èvõŠ¯×â_¹Í;´ºßHšünþw5âß&tÎúGé,\\¾£ëÛØÍYñ’/ûñe1/ž{Z\"r
Ü$xb——6éþ4ÿÒbž÷|ÿ‘Ü€\"üëo4éÂæo=Yaôòæ¦4¹Hm÷\\}Áòá0â|ŸÄË—·…‡½í]ôyý.ÎÙ-Þµ\"ryhéaù8–Œ“ÛwQœwsÖ#F2‰ÍºÄa}ó“8wñô™_—¬™Ü.ƒ$x7ýöF³LKÖ-óF´fôÏŒ·ê«ÿXë-“nÓ_¾½‘eOG²j›>$¼ÑT0Bںѥ÷Áã<{ýø‡R“èŇ„_Òe0a#`÷åoä_˜‡|N1Yøå‘)xÌâ›·ükŸ°_‚ù·7Æó4É[“ü‰GYÊ_™NBFçô!¦Ò¯ïøËhfVßÞ|
4•~¦OÒ/ñ\"ˆøÍ™¥•ç\'ié³ø‘ô¯â§1)Zþk¥¶·«¾¼]3Ù:k\'ëô]þ¯“Šë$žÇ¼C¢Ç²ø¯:6E{=¶¼ÛÓÐ]‚‚Œ6Ë„¦4ùBo¾ói=²O4Ë¿OÅNôq”œ}Ñã\"ÿ#œ™¯\'$9»÷nZ´¡ÕÈ×_èˆ[>Bk>DBõ¯^~¤”?|B7@\0V¶ [´
ݽŒ†cõ×å<¦Íqkn·À?Eíë\0r¹@î‡$üÎéMß| éÓ[:
³¯šÃØŒ\0cæ%ŒªÃÄü·pÞÃ`0|~owæœxÁ©•Jq$e3*ÝÇó)MR)ˆ¦RÂlãéù\0v\0û,æ ¤y¸³€G9¼i0™I÷ß4†³ÍÉp8ŸÎ>³¡¥e/i’…Ì–¾çŸÓð/Úܱ`°<,\'ôKÈWUSéÍ$^2HKñ½ÄlI {µäš¶@7îݲG,Ïtº›£{»•ý>~xà¤Þ€siÌuà¼<&¾ge®²„ –¶0»”þ™T0s?Ìü+»J¿Ð‡0Írd7wmÀ`Åû)ˆ‚*’ªò°ôñ9Íè¢9œU€3Ày¨rZ`<}¼K\'I¸l)§94Ø\0쳯;Ñ ™Ì]›C—ƒô‚2ýNB.9}{\'Ùè’EÖœºhÃ\'¹o¾4n]†“L \"ˆ&³8Y£ÅÐtFÂ/· e÷CÖúÇŸü\'þ‘ŒU¾àY¤ó†Ólv+ÿÏ
fÙ-úF]f7R|;K.ž×‰°¢)ÍØkV·ÅÌÕž‹a|{ó?™ÿ¿8‰?SöàýªŸ¼ƒDG!ˆ#‹>4É‘Ý®Ówù¿\'ÉÈ手ôöàÓZñjØ`ÝÚý¥cóHÚ$ˆ¤IBƒŒò”0‘â§Hzà›yšzðÙ®\0è«\0´W¤˜HOÌ “fÁZúk¦ÜB~KO3š°6*@ÜŸ†÷÷¬6XÄì2¥Kñͦ<}e?I‹Gö~ö•eðÜf9eðY´ÀWÁ<\"—Jƒ}šÅ rXÇÍ9†g2,‘Îøƒ¬eÁX(›IK/ç´êw>z˜—†ÁÝ>ºq³ËG×食+Ñöš|t‡|tðÑ‹ÖCvMÝ×X{9ƒÏÖ,$+ØlC„vo6Û»{é9~\\YcÁjˆ0Ÿ&¾—B6\0žå•ïIïÖÛG¸Ç¿2•8¥ANØwž›ãÿùœ€À\'ŸEòE1‰ ó,aÏ%¸g¯§æ“ÿ%NKÍŸ¥GQe€1Ë„&YFy\"d^G
Ëû¬š{3ÎàS\"®Jäy5wÌC…¿Rüžˆx=ÐLŠâ,¼™ï™‚x–&³ z`Ýg_ 3¡2¸a¯Zo;œË%Z°Åà*-®‚-~PŸB7`¬±Þ-.±ùûcÊ0/-ã%S<ú f™ÇL\'´@üàs.ñWø)]2<
Please tell me if you need any more information that might help you :D