1,php网页上传文件大小有限制的,默认最大2M。可以修改php.ini调节大小,upload_max_filesize = 2M。
网页上传使用http协议,上传大文件性能不好;有些公司做一个客户端软件,使用tcp协议,专门上传大文件的。
2,文件系统只识别GB2312,不识别utf-8,因此需要对中文进行转码。iconv("utf-8","GB2312",$fileNew),$fileNew是上传的我那件存放的路径。
3,上传的文件全部放在一个目录下是非常不明智的,可以将每个用户建一个文件夹,每个用户所有资料上传到其自己文件夹。
4,文件上传的实例
(1) 文件上传的页面
<form action="uploadProcess.php" enctype="multipart/form-data" method="post"> <input type="text" name="username"><br/> 上传文件:<input type="file" name="myFile"><br/> <input type="submit" value="上传"> </form>
(2)处理上传请求
<?php $username = $_POST['username']; $myFile = $_POST['myFile']; //上传文件大小限制 if($_FILES['myFile']['size'] > 2 * 1024 * 1024){ echo '上传的文件不能大于2M!'; exit(); } //上传文件格式限制 if($_FILES['myFile']['type'] != 'image/jpg' && $_FILES['myFile']['type'] != 'image/jpeg'){ echo'上传的文件只能是jpg格式!'; exit(); } $fileTmp = $_FILES['myFile']['tmp_name']; if(is_uploaded_file($fileTmp)){ $fileNew = $_SERVER['DOCUMENT_ROOT'].$username; if(!file_exists($fileNew)){ //每个用户上传文件有一个专门文件夹 mkdir($fileNew); } //防止上传同名文件,将上传文件改名字,修改后time()+rand(1,1000)+.原文件后缀名 $fileLast = substr($_FILES['myFile']['name'],strrpos($_FILES['myFile']['name'],".")); $fileNew = $fileNew."/".time().rand(1,1000).$fileLast; if(move_uploaded_file($fileTmp,iconv('utf-8','GB212',$fileNew))){ echo '上传成功!'; }else{ echo '文件从临时目录转移到新目录失败!'; } }else{ echo '文件没有上传!'; }