今天寫的是文件上傳,前幾天自學的正規則又忘了,用了很笨的方法去判斷格式,直接上代碼:
<?<span style="color: #000000;">php </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * Created by PhpStorm. * User: Administrator * Date: 16-9-12 * Time: 上午10:01 * * 文件上传 * </span><span style="color: #008000;">*/</span> ?> <form action="upload.php" method="post" enctype="multipart/form-data"><span style="color: #000000;"> 上传文件:</span><input type="file" name="file" id="file"> <br/> <input type="submit" name="subbtn" value="上传"> </form> <?<span style="color: #000000;">php </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_POST</span>['subbtn'<span style="color: #000000;">])){ </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$_FILES</span>['file']['type']."<br/>"<span style="color: #000000;">; </span><span style="color: #008000;">/*</span><span style="color: #008000;"> * JPG image/jpeg * GIF image/gif * PNG image/png * </span><span style="color: #008000;">*/</span> <span style="color: #008000;">//</span><span style="color: #008000;">文件上传处理程序: //$_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)); //</span> <span style="color: #800080;">$file</span> = <span style="color: #800080;">$_FILES</span>['file'<span style="color: #000000;">]; </span><span style="color: #800080;">$fileName</span>=<span style="color: #800080;">$file</span>['name'<span style="color: #000000;">]; </span><span style="color: #0000ff;">echo</span> '后缀切割前:'. <span style="color: #800080;">$file</span>['name']."<br/>"<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">确定最后一个.出现的位置</span> <span style="color: #800080;">$pos</span> = <span style="color: #008080;">strrpos</span>(<span style="color: #800080;">$file</span>['name'],'.'<span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;">转换文件名为小写</span> <span style="color: #800080;">$ext</span> = <span style="color: #008080;">strtolower</span>(" <span style="color: #800080;">$fileName</span>"<span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;">提取文件名后缀</span> <span style="color: #800080;">$fileExten</span>=<span style="color: #008080;">substr</span>(<span style="color: #800080;">$ext</span>,<span style="color: #800080;">$pos</span>+2<span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;">判断文件后缀时候符合特定要求,这里设置为:jpg jpeg doc</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$fileExten</span>=='jpg'||<span style="color: #800080;">$fileExten</span>=='jpeg'||<span style="color: #800080;">$fileExten</span>=='doc'<span style="color: #000000;"> ){ </span><span style="color: #0000ff;">echo</span> "文件后缀:". <span style="color: #800080;">$fileExten</span>. "<br/>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "文件类型:". <span style="color: #800080;">$file</span>['type']."<br/>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "文件大小:". <span style="color: #800080;">$file</span>['size']."<br/>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "错误代码:". <span style="color: #800080;">$file</span>['error']."<br/>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "文件名:". <span style="color: #800080;">$file</span>['name']."<br/>"<span style="color: #000000;">; </span><span style="color: #0000ff;">echo</span> "临时文件名:". <span style="color: #800080;">$file</span>['tmp_name']."<br/>"<span style="color: #000000;">; </span><span style="color: #008080;">move_uploaded_file</span>(<span style="color: #800080;">$file</span>['tmp_name'], "files/".<span style="color: #800080;">$file</span>['name'<span style="color: #000000;">]); }</span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">echo</span> "文件格式不对"<span style="color: #000000;">; } </span>?>
格式不對的,直接被攔截。
如果要修改上傳的檔案大小限制,可以參考下面的做法:
1. 一般的檔案上傳,除非檔案很小.就像一個5M的檔案,很可能要超過一分鐘才能上傳完.
但在php中,預設的該頁最久執行時間為30 秒.就是說超過30秒,該腳本就停止執行.
這就導致出現無法打開網頁的情況.這時我們可以修改max_execution_time
在php.ini裡查找
max_execution_time
預設是30秒.改為
max_execution_time = 00%表示沒有限制
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 為佳.