오늘 쓴 글은 파일 업로드에 관한 내용인데 며칠 전에 배운 올바른 규칙을 잊어버려서 형식을 판단하기 위해 아주 멍청한 방법을 사용하고 코드를 직접 입력했습니다.
<?<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 파일처럼 아주 작은 파일이 아닌 이상 업로드하는데 1분 이상 걸릴 수 있습니다.
그러나 PHP에서는 이 페이지의 기본 최대 실행 시간이 30초입니다. 즉, 30초를 초과하면 스크립트 실행이 중지됩니다.
이로 인해 웹페이지를 열 수 없게 됩니다. 이때 max_execution_time
을 수정하고
max_execution_time을 검색하면 됩니다.
php.ini에서는 기본적으로 30초입니다.
max_execution_time = 0
0은 제한이 없음을 의미합니다
. post_max_size를 수정하여 POST 데이터에 허용되는 최대 크기를 설정합니다. 이 설정은 파일 업로드에도 영향을 미칩니다.
PHP의 기본 post_max_size는 2M입니다. POST 데이터 크기가 post_max_size보다 크면 $_POST 및 $_FILES 슈퍼 전역이 비어 있게 됩니다.
post_max_size를
post_max_size = 150M
으로 변경하세요. 3. 많은 사람들이 변경합니다. Step 2. 하지만 파일 업로드 시 최대 크기는 여전히 8M입니다.
업로드되는 파일의 최대 크기를 나타내기 위해 upload_max_filesize 매개변수도 변경해야 합니다.
upload_max_filesize를 찾아 기본값은 8M이고
upload_max_filesize = 100M
으로 변경합니다. 또한 post_max_size가 upload_max_filesize보다 크다는 점에 유의하세요.