本文实例为大家分享了php实现文件上传基本验证的具体代码,供大家参考,具体内容如下
Html部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< title >文件上传</ title >
</ head >
< body >
< form action = "doupload.php" method = "post" enctype = "multipart/form-data" >
< input type = "file" name = "myFile" />
< input type = "hidden" name = "MAX_FILE_SIZE" value = "1024" >
<!-- <input type="hidden" name="MAX_FILE_SIZE" value="1024">通过建立隐藏域来控制文件上传的大小
在页面上进行判断,value是1024kb,这是客户端上设置的限制,最好是服务器做限制 -->
< input type = "submit" value = "上传" />
</ form >
</ body >
</ html >
|
PHP服务端部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
<?php
header( "Content-type: text/html; charset=utf-8" );
//预定义变量
//print_r($_FILES);//可以显示错误号,根据错误号来定位错误信息
$filename = $_FILES [ 'myFile' ][ 'name' ];
$type = $_FILES [ 'myFile' ][ 'type' ];
$tmp_name = $_FILES [ 'myFile' ][ 'tmp_name' ]; //存储地址
$error = $_FILES [ 'myFile' ][ 'error' ]; //错误类型
$size = $_FILES [ 'myFile' ][ 'size' ]; //文件大小
$filenamemd5 =getUniName( $filename );
// $types="jpg";//只能上传图片
$limitsize = "185000" ; //控制图片大小
$a =getExt( $filename );
//$getext=getExt($filename);
//得到文件的扩展名
function getExt( $filename ){
$first = explode ( "." , $filename ); //文件名开始以.分割
$ext = strtolower ( end ( $first )); //取出数组中的最后一个数组进行返回
return $ext ;
}
//文件名以时间戳微秒md5加密的形式出现,确保文件的唯一
function getUniName(){
return md5(microtime(true));
}
//echo getUniName(); 返回md5加密的数值
function gettypes( $a ){
$array = array (jpg,png,txt);
$b =in_array( $a , $array );
return $b ;
}
if ( $limitsize >= $size ){
if (gettypes( $a )){
if ( $error ==0){
if ( is_uploaded_file ( $tmp_name )) {
//将服务器上的临时文件移动到指定目录
$filename = $filenamemd5 . "." .getExt( $filename );
$destination = "uploads/" . $filename ;
if (move_uploaded_file( $tmp_name , $destination )){
//检测这个临时文件是否为post方式
//返回镇或者假
echo $filename . "---" . "文件上传成功" ;
} else {
echo "你不是post上传的,非法操作" ;
}
} else {
echo "{$filename}文件移动失败" ;
}
} else {
switch ( $error ) {
case 1:
echo "超过php配置文件upload_max_filesize的值" ;
break ;
case 2:
echo "超过表单max_file_size的值" ;
break ;
case 3:
echo "部分文件被上传" ;
break ;
case 4:
echo "没有文件被上传" ;
break ;
case 6:
case 7:
echo "未知错误" ;
}
}
} else {
echo "只能上传图片" ;
}
} else {
echo "超出上传文件大小限制" ;
}
?>
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_36171533/article/details/78888454