我测试是支持的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" );
}
?>
|
以上所述就是本文的全部内容了,希望大家能够喜欢。