Home > Article > Backend Development > Master Notes: PHP Upload File Code_PHP Tutorial
PHP is still relatively commonly used, and everyone must know its powerful functions. Here we implement PHP upload file code analysis. The reason why it is difficult to implement an upload progress bar in PHP is because when we upload files to the server, we have to wait until all files are sent to the server before executing the corresponding PHP file. Before this, the file data was saved in a temporary file, and PHP could not obtain the path and size of this file.
php uploads files to determine whether the path to be stored exists is_dir(), if the file type meets the requirements explode('.',name)array() in_array(), if the file size meets the requirements $ _FILES[size] can be uploaded by move_uploaded_file ($_FILES[]['tmp_name'], the path and file name to be stored). If the original name is stored, use $_FILES[]['name'] directly or rename: time().
PHP upload file code:
<ol class="dp-xml"> <li class="alt"><span><span>function uploafile($path,$</span><span class="attribute"><font color="#ff0000">filesize</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">10241000</font></span><span>,$</span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>) </span></span></li> <li class=""><span>{ </span></li> <li class="alt"><span>if(!empty($path) && !file_exists($path)) </span></li> <li class=""><span>{ </span></li> <li class="alt"><span> echo '上传文件的路径不存在';exit; </span></li> <li class=""><span>} </span></li> <li class="alt"><span>//允许上传的文件类型 </span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">filetype</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span> </span> </li> <li class="alt"><span>( </span></li> <li class=""> <span> </span><span class="attribute"><font color="#ff0000">1</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('gif','png','jpg','jpeg','bmp'), </span> </li> <li class="alt"> <span> </span><span class="attribute"><font color="#ff0000">2</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('swf','flv'), </span> </li> <li class=""> <span> </span><span class="attribute"><font color="#ff0000">3</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('rm','rmvb','avi','wmv','mpg','asf','mp3','wma','wmv','mid'), </span> </li> <li class="alt"> <span> </span><span class="attribute"><font color="#ff0000">4</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('txt','doc','xls','ppt','pdf','xml','rar','zip','gzip','cab','iso','sql'), </span> </li> <li class=""> <span> </span><span class="attribute"><font color="#ff0000">6</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('exe','com','scr','bat') </span> </li> <li class="alt"><span>); </span></li> <li class=""><span>//上传文件类型数组合并 </span></li> <li class="alt"><span>$filetype[5] = array_merge($filetype[2],$filetype[3]); </span></li> <li class=""><span>//获得$_FILES数组的所有key </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">arr_key</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array_keys</font></span><span>($_FILES); </span> </li> <li class=""><span>//判断要上传的文件名称 </span></li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">file</font></span><span> = $_FILES[$arr_key[0]]; </span> </li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">exten</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">check_file_type</font></span><span>($file['name']); </span> </li> <li class="alt"><span>//判断文件上传类型 </span></li> <li class=""><span>if($type!=7 && !in_array($exten,$filetype[$type])) </span></li> <li class="alt"><span>{ </span></li> <li class=""><span> echo $file['name'].'的文件类型不符合要求!';exit; </span></li> <li class="alt"><span>} </span></li> <li class=""><span>//判断文件大小 </span></li> <li class="alt"> <span>if($file['size']</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>$filesize) </span> </li> <li class=""><span>{ </span></li> <li class="alt"><span> echo $file['size'].'的文件大小不能超过'.$filesize.'字节';exit; </span></li> <li class=""><span>} </span></li> <li class="alt"><span>//开始上传 </span></li> <li class=""><span>//move_uploaded_file($file['tmp_name'],$path.$file['name']); </span></li> <li class="alt"><span>//为了避免覆盖,重命在旦夕名该文件 </span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">newname</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">time</font></span><span>().'.'.$exten; </span> </li> <li class="alt"><span>move_uploaded_file($file['tmp_name'],$path.$newname); </span></li> <li class=""><span>return $newname; </span></li> <li class="alt"><span>} </span></li> <li class=""><span> </span></li> <li class="alt"> <span>echo uploafile('',$</span><span class="attribute"><font color="#ff0000">filesize</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">10241000</font></span><span>,$</span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">3</font></span><span>); </span> </li> <li class=""> <span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span> </li> </ol>
The above is the detailed PHP file upload code, it is very simple.