$res = D('IfColumnMap')->saveData($data);
106 foreach ($arr[1] as $key => $value) {
107 $data['col_name'] = "field_".$j;
108 $data['col_meaning'] = $arr[1][$key];
109 $res = D('IfColumnMap')->saveData($data);
110 $j++;
111 }
112
113 // 查找每个字段数据的最大长度
114 // 用来确定每个字段的长度
115 $t = 0;
116 foreach ($arr[2] as $key => $value) {
117 $ml = 0;
118 for($i = 2;$i <= count($arr);$i++) {
119 if(strlen($arr[$i][$key]) > $ml) {
120 $ml = strlen($arr[$i][$key]);
121 }
122 }
123 $maxLenght[$t] = $ml;
124 $t++;
125 }
126
127 // 如果长度大于256,就将字段类型设置为text类型
128 for($i = 0;$i < count($maxLenght); $i++) {
129
130 if($maxLenght[$i] > 256) {
131 $type[$i] = "text";
132 }
133 else {
134 $type[$i] = "varchar(".($maxLenght[$i]+15).")";
135 }
136 }
137
138 //建立if_table_n的sql语句
139 //utf-8编码 default charset=utf8
140 //自增类型 int primary key not null auto_increment
141 $sqlString = "CREATE TABLE ".$tablename." ( ";
142 $sqlString .= "field_0"." "."int primary key not null auto_increment,";
143 $sqlString .= "field_1"." ".$type[0];
144 for($i = 1;$i < count($maxLenght);$i++) {
145 $sqlString .= ","."field_".($i+1)." ".$type[$i];
146 }
147 $sqlString .= ") default charset=utf8";
148
149 // 数据表创建
150 $Model = new \Think\Model(); // 实例化一个model对象 没有对应任何数据表
151 $Model->execute($sqlString);
152
153 // 为新建的数据表if_table_n添加数据
154 for($i = 2;$i <= count($arr);$i++) {
155 $k = 1;
156 foreach ($arr[$i] as $key => $value) {
157 $info['field_'.$k] = $arr[$i][$key];
158 $k++;
159 }
160 M($tablename)->add($info);
161 }
162
163 // 插入 用户、表 数据之间的关系
164 //if_user_table
165 $data = array(
166 'userid' => session('if_userid'),
167 'unique_name' => 'if_table_'.$unique_name_id,
168 'file_name' => $filen,
169 'save_name' => $info["file"]['savename'],
170 'save_path' => $info["file"]["savepath"],
171 'submit_time' => date("Y-m-d h:i:s"),
172 'tag' => 1,
173 'file_id' => $res[0]['value'],
174 'sheet' => $s,
175 'sheetname' => $sheetname[$s]
176 );
177
178 $result = D('IfUserTable')->saveData($data);
179
180 if($result === false) {
181 $this->error("数据上传失败!");
182 }
183 $unique_name_id++;
184 }
185
186 $this->success("上传成功!",__APP__."/Home/Index/index");
187
188 }