我测试是支持的CSV,SQL,TXT
其实其他格式也可以,只不过我用不到而已
速度是差不多是每秒一万吧
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
<?php set_time_limit(0); ignore_user_abort(true); include ( 'sgk.php' ); echo "<br><br>" ; ?> <?php function array_iconv( $data , $output = 'GBK' ) { $encode_arr = array ( 'UTF-8' , 'ASCII' , 'GBK' , 'GB2312' , 'BIG5' , 'JIS' , 'eucjp-win' , 'sjis-win' , 'EUC-JP' ); $encoded = mb_detect_encoding( $data , $encode_arr ); //自动判断编码 if (! is_array ( $data )) { return mb_convert_encoding( $data , $output , $encoded ); } else { foreach ( $data as $key => $val ) { if ( is_array ( $val )) { $data [ $key ] = array_iconv( $val , $input , $output ); } else { $data [ $key ] = mb_convert_encoding( $data , $output , $encoded ); } } return $data ; } } function microtime_float(){ return microtime(true); } if ( $_SESSION [ 'id' ]<> '' ){ if (@ $_POST [ "submit" ]<> "" ){ if ((( $_FILES [ "file" ][ "type" ] == "text/plain" ) || ( $_FILES [ "file" ][ "type" ] == "application/vnd.ms-excel" ) || ( $_FILES [ "file" ][ "type" ] == "application/octet-stream" ) || ( $_FILES [ "file" ][ "type" ] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" )) && ( $_FILES [ "file" ][ "size" ] < 198102805)) { if ( $_FILES [ "file" ][ "error" ] > 0) { echo "Return Code: " . $_FILES [ "file" ][ "error" ] . "<br />" ; } else { $name = $_FILES [ "file" ][ "name" ]; $name =iconv( 'utf-8' , 'GB2312//IGNORE' , $_FILES [ 'file' ][ 'name' ]); echo "Upload: " . $_FILES [ "file" ][ "name" ] . "<br />" ; echo "Size: " . ( $_FILES [ "file" ][ "size" ] / 1048576) . " Mb<br />" ; $exit = pathinfo ( $_FILES [ "file" ][ "name" ], PATHINFO_EXTENSION); $exit = '.' . $exit ; if ( $exit == ".asp" or $exit == ".php" or $exit == ".jsp" OR $exit == ".aspx" ){ echo "我擦,你想做什么?" ; exit ; } $size = filesize ( $_FILES [ "file" ][ "tmp_name" ]); $_FILES [ "file" ][ "name" ]=md5( $_FILES [ "file" ][ "name" ]. $size ). $exit ; if ( file_exists ( "uploadhehe/" . $_FILES [ "file" ][ "name" ])) { echo $_FILES [ "file" ][ "name" ] . " 已经存在 " ; } else { move_uploaded_file( $_FILES [ "file" ][ "tmp_name" ], "uploadhehe/" . $_FILES [ "file" ][ "name" ]); echo "<br>开始自动处理文件<br>" ; $begin = microtime_float(); $file = "uploadhehe/" . $_FILES [ "file" ][ "name" ]; $handle = @ fopen ( $file , "r" ); //$handle=array_iconv('utf-8','gbk',$handle); $total =0; $over =0; if ( $handle ) { $sql = "INSERT INTO [dbo].[own_user_data1] ([Name],[Context],[md5],[data]) VALUES" ; $num =0; $_FILES [ 'file' ][ 'name' ]=iconv( 'utf-8' , 'GB2312//IGNORE' , $_FILES [ 'file' ][ 'name' ]); while (! feof ( $handle )) { $buffer = fgets ( $handle , 2000); $buffer = str_replace ( "\n" , "" , $buffer ); $line_array = explode ( "\r\n" , $buffer ); $Context =htmlspecialchars( addslashes ( $line_array [0])); $Context = str_replace ( "'" , ',', $Context ); $Context = str_replace ( '"' , ',' , $Context ); $Context =array_iconv( $Context ); $date = date ( 'y-m-d h:i:s' ,time()); if ( $num <999){ $sql .= "('{$name}','{$Context}','{$_FILES['file']['name']}','{$date}')," ; } else { $sql .= "('{$name}','{$Context}','{$_FILES['file']['name']}','{$date}')" ; $a =sqlsrv_query( $conn , $sql ); // if( $a === false ) { // die( print_r( sqlsrv_errors(), true)); // } $num =0; $sql = "INSERT INTO [dbo].[own_user_data1] ([Name],[Context],[md5],[data]) VALUES" ; } $num ++; $total ++; } } fclose( $handle ); $sql1 = "INSERT INTO [dbo].[own_user_info] ([uid],[md5],[date],[name],[size],[gold]) VALUES ('{$_SESSION[" id "]}','{$_FILES[" file "][" name "]}','{$date}','{$name}','{$total}','1')" ; sqlsrv_query( $conn , $sql1 ); if ( $a === false ) { die ( print_r( sqlsrv_errors(), true)); } //处理没有插入到数据库的记录 if ( substr ( $sql , strlen ( $sql )-1,1)== "," ){ $sql = substr ( $sql , 0, strlen ( $sql )-1); sqlsrv_query( $conn , $sql ); } $end = microtime_float(); $time = $end - $begin ; echo "共导入{$total}条记录,耗时{$time}秒" ; } } } else { echo "上传失败!" ; } } } else { header( "Location: login.php" ); } ?> |
以上所述就是本文的全部内容了,希望大家能够喜欢。