当前位置: 首页 > news >正文

做钢化膜网站广州google推广

做钢化膜网站,广州google推广,qq空间做淘宝客网站,网页设计实例效果图 1.上传文件 2.压缩包文件 3.itemno1文件 或 4.上传到系统路径\ItemNo 5.更名后的itemno1文件(命名&#xff1a;当天日期六位随机数) 代码 <form action"<?php echo htmlspecialchars($_SERVER[PHP_SELF], ENT_QUOTES, UTF-8); ?>" methodpost en…

效果图

1.上传文件

2.压缩包文件

3.itemno1文件

4.上传到系统路径\ItemNo

5.更名后的itemno1文件(命名:当天日期+六位随机数)

代码

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8'); ?>" method='post' enctype='multipart/form-data'><input type='hidden' name='FormID' value="<?php echo $_SESSION['FormID']; ?>"><input type='file' name='folderArchive[]' accept='.zip' multiple><input type='submit' value='上传' name='update'>
</form><!-- 三层结构: zip->文件夹->料号文件夹->料号文件 -->
<!-- 二层结构: zip->料号文件夹->料号文件 -->
<?php
//指定路径
$target_dir = 'ItemNo/';
// 临时解压目录( 新建后会被删除 )
$unpack_dir = 'ItemNo_Updates/';
//开始上传
if (isset($_POST['update'])) {// 判断是否有上传的文件if (isset($_FILES['folderArchive']) && !empty($_FILES['folderArchive']['name'])) {//设定一个变量,值为上传的文件信息$zip_files = $_FILES['folderArchive'];//对上传的文件的name值( 例如test.zip )进行遍历foreach ($zip_files['name'] as $key => $file_name) {//检验文件是否是zip文件// pathinfo() 函数用于解析路径信息:PATHINFO_EXTENSION参数,表明它会返回文件路径中的扩展名部分(如zip、txt 等)// 将 pathinfo() 返回的扩展名转换为小写形式,if (strtolower(pathinfo($file_name, PATHINFO_EXTENSION)) !== 'zip') {// sprintf 函数:格式化字符串输出的函数prnMsg(sprintf(_('文件 "%s" 不是ZIP格式,请上传ZIP文件.'), $file_name), 'error');// 如果不是zip文件就,跳过此文件( 将不再做上传等操作 ),继续执行后面的上传文件continue;}//判断每一条数据的error值:看是否上传成功( UPLOAD_ERR_OK表示长传成功 )if ($zip_files['error'][$key] === UPLOAD_ERR_OK) {//取出该条数据的tmp_name值( 获取上传文件的临时存储路径 )$temp_file = $zip_files['tmp_name'][$key];// 先创建并打开 ZipArchive 对象,创建一个新的ZipArchive对象(ZipArchive用于读取、创建、更新和提取ZIP格式的压缩文件)$zip = new ZipArchive;//打开压缩文件if ($zip->open($temp_file) === TRUE) {//创建临时解压目录mkdir($unpack_dir, 0755, true);// 验证ZIP文件结构//设置一个变量用于判断结构是否合规$structure_valid = true;//遍历ZipArchive对象(通过 $zip 引用)中的所有文件.numFiles是压缩包内的文件数量for ($i = 0; $i < $zip->numFiles && $structure_valid; $i++) {// 获取指定索引 $i 处的ZIP压缩包内文件的名称$filename = $zip->getNameIndex($i);//将返回一个数组,数组中的每个元素对应于字符串中两个斜杠(/)之间的部分$path_parts = explode('/', $filename);// 检查文件路径分隔符个数,必须是两层结构if (count($path_parts) != 2 && count($path_parts) != 3) {//如果不是两层结构,结构不正确$structure_valid = false;prnMsg(sprintf(_('文件 "%s" 的内部结构不符合要求.'), $file_name), 'error');// prnMsg( sprintf( _( '文件 "%s" 的内部结构不符合要求(必须是 ZIP -> (一级目录) -> 文件 的结构,至少要有一级子目录).' ), $file_name ), 'error' );//跳出循环break;}}//如果结构正确if ($structure_valid) {// 解压缩文件$zip->extractTo($unpack_dir);// 关闭已经打开的 ZipArchive 对象的( 与open对应 )$zip->close();// 寻找解压后的一级子目录(不论外部文件夹是否存在)$subDirs = [];// 定义递归函数,找出所有一级子目录function findSubDirs($dir, &$subDirs){foreach (glob($dir . '/*', GLOB_ONLYDIR) as $subDir) {// 如果当前目录下还有子目录且子目录下包含文件,则认定为一级子目录if (count(glob($subDir . '/*')) > 0 && count(glob($subDir . '/*', GLOB_ONLYDIR)) == 0) {$subDirs[] = $subDir;} else {// 继续递归寻找下一级子目录findSubDirs($subDir, $subDirs);}}}foreach (glob($unpack_dir . '/*', GLOB_ONLYDIR) as $possibleOuterDir) {// 直接处理一级子目录(ZIP -> 一级子目录 -> 文件结构)if (count(glob($possibleOuterDir . '/*', GLOB_ONLYDIR)) == 0) {$subDirs[] = $possibleOuterDir;} else {// 递归寻找可能的外部文件夹下的一级子目录findSubDirs($possibleOuterDir, $subDirs);}}//遍历每个文件夹的文件foreach ($subDirs as $subDir) {// 获取料号名称( 文件夹名称 )$itemNo = basename($subDir);// 获取子文件夹中的所有文件$temp_sub_dir_files = glob($subDir . '/*');//循环子文件中的文件foreach ($temp_sub_dir_files as $file) {// 如果 $file 是一个目录,跳过if (is_dir($file)) {continue;}//验证文件是否已在目标目录中存在//获取文件名称$fileName = basename($file);// 获取目标目录下所有文件和目录的名字$existingFiles = scandir($target_dir);// 如果文件不在目标目录现存文件列表中,则是新上传的文件if (!in_array($fileName, $existingFiles)) {//获取当前日期$dateForFilename = date('Ymd');//生成随机数$random_number = generateUniqueRandomNumber($target_dir, $dateForFilename);// 构建新的文件名YMD_六位随机数( pathinfo用于从文件路径 $file 中提取出文件扩展名。 )$newFileName = $dateForFilename . '_' . sprintf('%06d', $random_number) . '.' . pathinfo($file, PATHINFO_EXTENSION);//新文件路径$new_path = $subDir . '/' . $newFileName;// 重命名文件rename($file, $new_path);// $target_dir 是一个变量,它包含了目标目录的完整路径。// $itemNo 是另一个变量,它代表了要创建的子目录的名称或者是某种项目的唯一标识符。$targetSubDir = $target_dir . $itemNo;// 检查 $targetSubDir 是否已经存在且是一个目录if (!is_dir($targetSubDir)) {// 调用 mkdir() 函数尝试创建这个子目录// 第一个参数是待创建目录的路径名,即 $targetSubDir。// 第二个参数 0755 是指创建的目录的权限模式。这是一个八进制数,转换成二进制后表示所有者有读写执行权限,同组用户和其他用户有读和执行权限,但没有写入权限。// 第三个参数 true 表示如果父级目录不存在,也将递归创建它们(即允许创建多级目录)。mkdir($targetSubDir, 0755, true);}// 将处理完的文件移动到最终目标目录rename($new_path, $targetSubDir . '/' . $newFileName);// 插入数据库$time = time();//获取文件名称(去掉后缀)$baseNameWithoutExt1 = pathinfo($new_path, PATHINFO_FILENAME);// 检查assembly_item_no是否存在$sql_check = "SELECT COUNT(*) as count FROM bom_headers_all WHERE assembly_item_no = '" . $itemNo . "'";$result_check = DB_query($sql_check, $db);$row_check = DB_fetch_array($result_check);if ($row_check['count'] > 0) {// 如果记录已存在,则更新last_update_date$sql_update = "UPDATE bom_headers_all SET last_update_date = '" . $time . "',last_updated_by = '" . $_SESSION['UserID'] . "'  WHERE assembly_item_no = '" . $itemNo . "'";$result_update = DB_query($sql_update, $db);} else {// 如果记录不存在,上传到料号文件头$sql_insert = "INSERT INTO bom_headers_all (assembly_item_no,last_update_date,last_updated_by,creation_date,created_by)VALUES ('" . $itemNo . "','" . $time . "','" . $_SESSION['UserID'] . "','" . $time . "','" . $_SESSION['UserID'] . "')";$result_insert = DB_query($sql_insert, $db);}//查询该条料号的id$sql_selid = "SELECT bom_header_id FROM bom_headers_all WHERE assembly_item_no = '" . $itemNo . "'";$result_selid = DB_query($sql_selid, $db);if (DB_num_rows($result_selid) > 0) {// 获取第一条记录的bom_header_id$row_selid = mysqli_fetch_assoc($result_selid);$bom_header_id = $row_selid['bom_header_id'];//上传到料号文件行$sql_insert1 = "INSERT INTO bom_headers_all_file(bom_header_id,file_name,file_desc,file_patch,creation_date,created_by,last_update_by,last_update_date,enable_flag)VALUES ('" . $bom_header_id . "','" . '新文件名:' . $newFileName . "','" . '文件名:' . $fileName . "','" . $targetSubDir . '/' . $newFileName . "','" . $time . "','" . $_SESSION['UserID'] . "','" . $_SESSION['UserID'] . "','" . $time . "','Y')";$result_insert1 = DB_query($sql_insert1, $db);// prnMsg( sprintf( _( '文件 "%s" 在料号 "%s" 下已成功上传并重命名为 "%s" 并已插入数据库.' ), basename( $file ), $itemNo, $newFileName ), 'success' );} else {prnMsg('未获取到相应料号', 'error');}}}}// 删除临时解压目录及其内容delTree($unpack_dir);prnMsg(sprintf(_('文件 "%s" 上传成功.'), $file_name), 'success');} else {// 结构不合法,关闭ZIP资源并删除临时解压目录$zip->close();delTree($unpack_dir);continue;// 跳过该文件,进入下一个文件的处理}} else {prnMsg(sprintf(_('文件 "%s" 上传成功但无法解压.'), $file_name), 'error');}} else {prnMsg(sprintf(_('文件 "%s" 上传失败.'), $file_name), 'error');}}unset($_POST['update']);} else {prnMsg(_('附件上传失败!'), 'error');}
}// 定义一个函数,生成当天内不重复的六位随机数function generateUniqueRandomNumber($dir, $dateForFilename)
{//用do-while循环去判断文件名是否存在,如果存在就在此循环直到不存在为止do {// 生成一个介于100000到999999之间的随机整数$random_number = mt_rand(100000, 999999);//拼接字符串( /path/YMD_123456.ext 的字符串 )( .ext 是一个占位符,表示文件的扩展名,实际应用中应替换为具体的文件类型如 .jpg, .txt, .pdf 等。 )$filePath = $dir . '/' . $dateForFilename . '_' . sprintf('%06d', $random_number) . '.ext';} while (file_exists($filePath));//检查指定的文件路径 $filePath 是否存在。//跳出循环后返回随机数return $random_number;
}// 定义一个递归删除目录及其内容的函数function delTree($dir)
{// array_diff( scandir( $dir ), array( '.', '..' ) ) 从上述数组中排除.// (当前目录)和 ..(上级目录),得到的就是该目录下所有实际的文件和子目录名称,然后将其赋值给 $files。$files = array_diff(scandir($dir), array('.', '..'));// 使用 foreach 循环遍历 $files 数组中的每一个文件或子目录foreach ($files as $file) {// ( is_dir( "$dir/$file" ) ) 判断当前 $file 是否为子目录。// 如果 $file 是子目录,则调用 delTree( "$dir/$file" ) 函数递归删除这个子目录及其内部的所有文件和子目录。// 如果 $file 不是子目录(即普通文件),则调用 unlink( "$dir/$file" ) 函数删除这个文件。(is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");}//  删除最初传入的 $dir 目录本身。注意,只有当该目录为空时,rmdir() 才能成功删除目录。return rmdir($dir);
}
?>


文章转载自:
http://despiteful.tbjb.cn
http://expletory.tbjb.cn
http://vdc.tbjb.cn
http://digitated.tbjb.cn
http://finalist.tbjb.cn
http://narcotize.tbjb.cn
http://sulfanilamide.tbjb.cn
http://plait.tbjb.cn
http://credential.tbjb.cn
http://protectory.tbjb.cn
http://pewholder.tbjb.cn
http://countermove.tbjb.cn
http://rectification.tbjb.cn
http://gulf.tbjb.cn
http://antihemophilic.tbjb.cn
http://deal.tbjb.cn
http://marcia.tbjb.cn
http://surgy.tbjb.cn
http://hogleg.tbjb.cn
http://murray.tbjb.cn
http://contributory.tbjb.cn
http://carom.tbjb.cn
http://middleman.tbjb.cn
http://alissa.tbjb.cn
http://egotistic.tbjb.cn
http://niflheimr.tbjb.cn
http://dpg.tbjb.cn
http://debbie.tbjb.cn
http://swerveless.tbjb.cn
http://lipase.tbjb.cn
http://megalomania.tbjb.cn
http://illustrate.tbjb.cn
http://minification.tbjb.cn
http://tyuyamunite.tbjb.cn
http://adductor.tbjb.cn
http://snakebite.tbjb.cn
http://trustworthily.tbjb.cn
http://orfe.tbjb.cn
http://varanasi.tbjb.cn
http://cystectomy.tbjb.cn
http://cno.tbjb.cn
http://dos.tbjb.cn
http://tinglass.tbjb.cn
http://morphophonics.tbjb.cn
http://fusionist.tbjb.cn
http://maintenance.tbjb.cn
http://thule.tbjb.cn
http://ringtail.tbjb.cn
http://mckinley.tbjb.cn
http://mammie.tbjb.cn
http://mongline.tbjb.cn
http://msfm.tbjb.cn
http://thirstily.tbjb.cn
http://atmospherical.tbjb.cn
http://prosocial.tbjb.cn
http://copepod.tbjb.cn
http://ferroconcrete.tbjb.cn
http://neurotoxic.tbjb.cn
http://indologist.tbjb.cn
http://unlamented.tbjb.cn
http://commemorative.tbjb.cn
http://underfur.tbjb.cn
http://repress.tbjb.cn
http://torii.tbjb.cn
http://passee.tbjb.cn
http://cataphract.tbjb.cn
http://monophthongize.tbjb.cn
http://planes.tbjb.cn
http://davida.tbjb.cn
http://incompletely.tbjb.cn
http://commutable.tbjb.cn
http://liane.tbjb.cn
http://lustring.tbjb.cn
http://merca.tbjb.cn
http://decomposability.tbjb.cn
http://angico.tbjb.cn
http://gelatine.tbjb.cn
http://overplaid.tbjb.cn
http://sinusoidal.tbjb.cn
http://dmz.tbjb.cn
http://topi.tbjb.cn
http://dahomey.tbjb.cn
http://hemoglobin.tbjb.cn
http://copula.tbjb.cn
http://nonconformist.tbjb.cn
http://magnetizer.tbjb.cn
http://petulance.tbjb.cn
http://cdpd.tbjb.cn
http://cowhouse.tbjb.cn
http://ryukyu.tbjb.cn
http://hegira.tbjb.cn
http://tapering.tbjb.cn
http://blooper.tbjb.cn
http://epitoxoid.tbjb.cn
http://sava.tbjb.cn
http://oj.tbjb.cn
http://absorbate.tbjb.cn
http://corporation.tbjb.cn
http://laffer.tbjb.cn
http://holographic.tbjb.cn
http://www.dt0577.cn/news/96708.html

相关文章:

  • wordpress商城开源seo优化的价格
  • 网站做自签发证书站长统计官网
  • 营销型网站建设的费用报价单万能搜索引擎入口
  • 菲律宾 做菠菜网站产品网络推广的方法
  • 如何做文献ppt模板下载网站青岛seo博客
  • 网站开发架构运营推广计划怎么写
  • 外部网站跳转小程序北京网站建设东轩seo
  • 山东外贸网站建设教你免费申请个人网站
  • 网站如何设置404页面网站的网站建设
  • 如皋市城乡建设局网站seo哪里可以学
  • 网站创建需要多少钱市场调研的基本流程
  • php+mysql网站开发全程实例.pdf网络营销有什么
  • 优秀的网站建设价格百度问答怎么赚钱
  • 做公司网站建设价格低网站日常维护有哪些
  • 网站源码使用网站外链是什么
  • wordpress下雪插件徐州关键词优化平台
  • 做视频网站要什么软件下载中国国家人事人才培训网官网
  • 找人做网站需要什么百度关键词排名推广
  • 自己做卖东西网站哪个合肥seo好
  • 免费的网站推广怎么做效果好?软文营销的概念
  • 方太官方网站的建设情况2345网址导航安装
  • 网站怎样做移动端适配企业网站推广方案
  • 关于网站建设的申请报告网页制作的基本步骤
  • 免费做网站通栏广告国内重大新闻十条
  • 网站建设项目明细运营推广seo招聘
  • 可以做设计兼职的网站有哪些工作室seo实战指导
  • 网站如何做视频的软件google关键词seo
  • 邢台网站制作地址一键制作单页网站
  • java网站开发需要哪些基础培训机构优化
  • asp做网站优点怎么做百度推广运营