今天寫的是文件上傳,前幾天自學的正規則又忘了,用了很笨的方法去判斷格式,直接上碼:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 16-9-12 * Time: 上午10:01 * * 文件上传 * */ ?> <form action="upload.php" method="post" enctype="multipart/form-data"> 上传文件:<input type="file" name="file" id="file"> <br/> <input type="submit" name="subbtn" value="上传"> </form> <?php if(isset($_POST['subbtn'])){ echo $_FILES['file']['type']."<br/>"; /* * JPG image/jpeg * GIF image/gif * PNG image/png * */ //文件上传处理程序: //$_FILES['file']['type'] 上传文件的类型 //$_FILES['file']['size'] 上传文件的大小 //$_FILES['file']['error'] 上传错误代码 //$_FILES['file']['name'] 上传文件名 //$_FILES['file']['tmp_name'] 临时文件名 //$fileName="a.TXT"; //$pos = strrpos($fileName,"."); //$ext = strtolower(substr($fileName,$pos)); // $file = $_FILES['file']; $fileName=$file['name']; echo '后缀切割前:'. $file['name']."<br/>"; //确定最后一个.出现的位置 $pos = strrpos($file['name'],'.'); //转换文件名为小写 $ext = strtolower(" $fileName"); //提取文件名后缀 $fileExten=substr($ext,$pos+2); //判断文件后缀时候符合特定要求,这里设置为:jpg jpeg doc if($fileExten=='jpg'||$fileExten=='jpeg'||$fileExten=='doc' ){ echo "文件后缀:". $fileExten. "<br/>"; echo "文件类型:". $file['type']."<br/>"; echo "文件大小:". $file['size']."<br/>"; echo "错误代码:". $file['error']."<br/>"; echo "文件名:". $file['name']."<br/>"; echo "临时文件名:". $file['tmp_name']."<br/>"; move_uploaded_file($file['tmp_name'], "files/".$file['name']); }else echo "文件格式不对"; } ?>
格式且對的,且直接被擷取。
如果要修改上傳的文件大小限制,可以參考下面的做法:1. 一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鐘才能上傳完.但在php中,預設的該頁最久執行時間為30 秒.是說超過30秒,該腳本就停止執行.
這就導致出現無法打開網頁的情況.這時我們可以修改max_execution_time在php.ini裡查找
max_execution_time
預設是30秒.改為
max_execution_time = 0
0表示沒有限制
2. 修改post_max_size 設定POST 資料所允許的最大大小。此設定也影響到文件上傳。
php預設的post_max_size 為2M.如果POST 資料尺寸大於post_max_size $_POST 和$_FILES superglobals 便會為空.
查找post_max_size .改為
post_max_size = 150M
3. 很多人會改掉了第二步。時最大仍為8M.
為什麼呢.我們還要改一個參數upload_max_filesize 表示所上傳的檔案的最大大小。
查找upload_max_filesize,預設8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大於 upload_max_filesize 為佳.