php - Exceeding Maximum File Size Is Not Showing An Error -
i have written code should check whether file size exceeds 8.5 mb or not & if does, should produce , error , prohibit post entering db. code prohibiting post enter db not showing error stating file size exceeds. ( p.s: check unknown file format working.) here code have written:
//$session id define ("max_size","9000"); function getextension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } $valid_formats = array("jpg", "png", "gif", "bmp","jpeg"); if(isset($_post) , $_server['request_method'] == "post") { $uploaddir = "uploads/"; //a directory inside foreach ($_files['photos']['name'] $name => $value) { $filename = stripslashes($_files['photos']['name'][$name]); $size=filesize($_files['photos']['tmp_name'][$name]); //get extension of file in lower case format $ext = getextension($filename); $ext = strtolower($ext); if(in_array($ext,$valid_formats)) { if ($size < (max_size*1024)) { $image_name=time().$filename; echo "<img src='".$uploaddir.$image_name."' class='imglist'>"; $newname=$uploaddir.$image_name; if (move_uploaded_file($_files['photos']['tmp_name'][$name], $newname)) { $time=time(); mysql_query("insert user_uploads(image_name,user_id_fk,created) values('$image_name','$session_id','$time')"); } else { echo '<p style="color: red;">you have exceeded size limit! moving unsuccessful! </p>'; } } else { echo '<p style="color: red;">you have exceeded size limit!</p>'; } } else { echo '<p style="color: red;">unknown extension!</p>'; } } }
i changed code bit.
you don't need function getextension complicated.
i changed foreach, loop through files not through attributes of file.
finally need check if directory exists before moving file. if not, should create it.
if(!is_dir($uploaddir)) { mkdir($uploaddir); }
see if works , check differences:
<?php //$session id define ("max_size","9000"); function getextension($str) { $ext = explode("/",$str); return $ext[1]; } $valid_formats = array("jpg", "png", "gif", "bmp","jpeg"); if(isset($_post) , $_server['request_method'] == "post") { $uploaddir = "uploads/"; //a directory inside foreach ($_files $file) { $filename = stripslashes($file['name']); $size=$file['size']; //get extension of file in lower case format $ext = getextension($file['type']); $ext = strtolower($ext); if(in_array($ext,$valid_formats)){ if ($size < (max_size*1024)){ $image_name=time().$filename; echo "<img src='".$uploaddir.$image_name."' class='imglist'>"; $newname=$uploaddir.$image_name; //before upload file directory, check if exists if(!is_dir($uploaddir)) { mkdir($uploaddir); } if (move_uploaded_file($file['name'], $newname)){ $time=time(); mysql_query("insert user_uploads(image_name,user_id_fk,created) values('$image_name','$session_id','$time')"); }else{ echo '<p style="color: red;">you have exceeded size limit! moving unsuccessful! </p>'; } }else{ echo '<p style="color: red;">you have exceeded size limit!</p>'; } }else{ echo '<p style="color: red;">unknown extension!</p>'; } } }
it worked in computer assume working to. hope helped
Comments
Post a Comment