使用PHP进行文件上传,主要使用到表单功能和PHP内置的$_FILES函数功能。接下来我们看如何实现PHP上传功能。例子效果图,此例子是在Mac下进行调试成功的。
PHP上传图片文件的功能代码如下:
<html> <head> <meta charset="utf-8"> <title>Upload File Example</title> <style> body{ width:500px; margin:20px auto; line-height:25px; } img{ display:block; max-500px; } h1{ text-align:center; } #uploadfile{ background-color:#eee; text-align:center; width:500px; margin:0 auto; } form{ margin:0px; padding:0px; } #uploadfile .input1{ display:block; width:500px; text-align:center; margin:0 auto; } #uploadfile .input2,.input3{ 100px; margin:5px 20px; } </style> </head> <body> <h1>Upload File</h1> <div id="uploadfile"> <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> <input class="input1" name="upfile" type="file"> <input class="input2" type="submit" value="确认提交"> <input class="input3" type="reset" value="重置"> </form> </div> <?php if($_FILES["upfile"]["name"]==NULL){ echo "No file choice!"; }else{ $filepath="/Library/WebServer/Documents/"; $tmp_name=$_FILES["upfile"]["tmp_name"]; $filename=$filepath.$_FILES["upfile"]["name"]; echo "<br>"."$_FILES['upfile']['name']:".$_FILES["upfile"]["name"]; echo "<br>"."$_FILES['upfile']['size']:".GetSize($_FILES["upfile"]["size"]); echo "<br>"."$_FILES['upfile']['type']:".$_FILES["upfile"]["type"]; echo "<br>"."$_FILES['upfile']['tmp_name']:".$_FILES["upfile"]["tmp_name"]; if(move_uploaded_file($tmp_name,$filename)){ echo "<br>"."已上传至目录:".$filename; if(in_array($_FILES["upfile"]["type"],array("image/png","image/jpg","image/bmp"))){ echo "<br>"."<img src='/".$_FILES["upfile"]["name"]."' />"; }else{ } }else{ echo "<br>"."Upload faild!"; } } // 将文件大小转成相应计量单位 function GetSize($tmp){ $arr = array("B","KB","MB","GB","TB","PB"); $pos = 0; if(!is_integer($tmp)) return -1; while($tmp>1024 and count($arr)>$pos){ $tmp = $tmp / 1024.0; $pos++; } $tmp = sprintf("%.2f",$tmp); return $tmp.$arr[$pos]; } ?> </body> </html>
使用表单的action可以选点表单提交对象,象本文中的例子是将表单提交给自己进行处理。
method可以选择post或get文件进行提交。