php多文件上传代码实现php多文件上传功能(1/2)

 更新时间:2016年11月25日 17:34  点击:1628
本文章利用了php多文件上传类来实现,多文件上传最主要就是关于file的属性必须以数组形式并且用foreach或for也读取来一个个用move_uploaded_file把文件上传到服务器这样就实现的多文件上传哦。
 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>php多文件上传代码</title>
</head>

<body>
<form method="post" enctype="multipart/form-data" action="server.php">
<input type="file" name="spec[]">
<input type="file" name="spec[]">


<!--<input type="file" name="spec">
<input type="file" name="manual">-->
<input type="submit">
</form>
</body>
</html>

server.php

<?php
//upload array files
include 'upload.class.php';
$u = new upload('../uploads/product/','spec','group');
print_r($u->getnewname());
echo $u->geterror();
/***********************
 //upload single file
$u = new upload('../www.111cn.net/product/','spec');
print_r($u->getnewname());
$u = new upload('../mb.111cn.net/product/','manual');
print_r($u->getnewname());
echo $u->geterror();
************************/
?>

 

这是一款由php+mysql数据库的读取数据库的内容再生成树型号菜单由js来控制

 代码如下 复制代码

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>类别目录树</title>
<script type="text/网页特效">
function showmenu(menuid)
{
if(menuid.style.display=="none"){
menuid.style.display="";
}
else{
menuid.style.display="none";
}
}
</script>
<style>
body{margin:0px;}
table tr td{font-size:12px}
</style>
</head>
<body>

<?php
$globals["id"] =1; //用来跟踪下拉菜单的id号
$layer=1; //用来跟踪当前菜单的级数
//连接数据库
$con=mysql_connect("localhost","root","123456");
mysql_select_db("demo");

//提取一级菜单
$sql="select * from think_news where `f_id`=0";
$result=mysql_query($sql,$con);
//如果一级菜单存在则开始菜单的显示
if(mysql_num_rows($result)>0) showtreemenu($con,$result,$id);
function showtreemenu($con,$result,$layer)
{
//取得需要显示的菜单的项目数
$numrows=mysql_num_rows($result);
//开始显示菜单,每个子菜单都用一个表格来表示
  echo "<table cellpadding='0' cellspacing='0' border='0' width='100%'>";
 for($rows=0;$rows<$numrows;$rows++)
 {
   //将当前菜单项目的内容导入数组
    $menu=mysql_fetch_array($result);
   //提取菜单项目的子菜单记录集
   $sql="select * from think_news where f_id=$menu[id]";
   $result_sub=mysql_query($sql,$con);
   echo "<tr>";
   //如果该菜单项目有子菜单,则添加javascript onclick语句
   if(mysql_num_rows($result_sub)>0)
   {
         echo "<td width='20' valign= 'top' ><span onclick='showmenu(menu".$globals['id'].")' ><img src='menu_minus.gif' border='0'  align='absmiddle'></span></td>";
         echo "<td class='menu' >";
   }
   else
   {
         echo "<td width='20'><img src='menu_plus.gif' border='0' align='absmiddle' > </td>";
         echo "<td class='menu'>";
   }
   //如果该菜单项目没有子菜单,只显示菜单名称
   echo $menu["title"];
   echo "</td></tr>";
   //如果该菜单项目有子菜单,则显示子菜单
   if(mysql_num_rows($result_sub)>0)
   {
       //指定该子菜单的id和style,以便和onclick语句相对应
       echo "<tr id=menu".$globals["id"]++." style='display:none'>";
       echo "<td width='20'> </td>";
       echo "<td>";
       //将级数加1
       $layer++;
       //递归调用showtreemenu()函数,生成子菜单
       showtreemenu($con,$result_sub,$layer);
       //子菜单处理完成,返回到递归的上一层
       echo "</td></tr>";
   }
   //子菜单处理完成,返回到递归的上一层,将级数减1
   $layer--;
  }
  echo "</table>";
}

//###########################################################
//
// for questions and comments
// roland (alias -=: vlieg :=-)
// icq #78354631
// mail: vlieg@atoomnet.net
//
// nb: this script won't work on free hosting pages, because of the secure mode!
// nb: you must have registered your icq# at http://web.icq.com/sms/login/ in order for this script to work
//###########################################################


$htmlreply="";
$post ="post http://web.icq.com/karma/dologin/1,,,00.html http/1.0
accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
referer: http://web.icq.com/sms/login/1,,,00.html
accept-language: nl
content-type: application/x-www-form-urlencoded
accept-encoding: gzip, deflate
user-agent: mozilla/4.0 (compatible; msie 5.0; windows 98; digext)
host: web.icq.com
content-length: ".$contentlength."
proxy-connection: keep-alive
pragma: no-cache
cookie: uin=".$uin."; sms_country=".$prefix."; karmaservice1=yes; uin=".$uin."; sms_country=".$prefix."; karmaservice1=yes

uservice=1&ulogin=".$uin."&upassword=".$passw."&x=0&y=0";

$remote = fsockopen("web.icq.com", 80, &$errno, &$errstr, 30);

global $remote;
global $post;
fputs($remote, $post);

while (!feof($remote)) { $htmlreply.=fgets($remote,120); }
//uncomment for output: echo "".htmlspecialchars($htmlreply)."";
fclose($remote);

//****************************************************************//persoonlijke cookie uit de inlogpage halen
// en: fetch personal cookie from login page

$splited = split(" ",$htmlreply);
$cookies = $splited[3];
$cookies = str_replace("set-cookie: karmalogin=","",$cookies);
$cookies = str_replace("; path=/","",$cookies);
$cookies = str_replace(" ","",$cookies);
//uncomment voor output: echo $cookies;

if (strlen($prefix) == 2) { $contentprefix = ' '.$prefix; } else { $contentprefix = $prefix; }
$charcount = (160-strlen($message));
$contentlength= ( 1561+
strlen($message)+
strlen($charcount)+
strlen($phonenumber)+
strlen($prefix)
);

//****************************************************************//verzendpagina openen met de opgehaalde cookie
// en: open send page with fetched cookie

$htmlreply="";
$post ='post http://web.icq.com/sms/send_history/1,,,00.html http/1.0
accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
referer: http://web.icq.com/sms/send_session/1,,,00.html?prefix=+'.$prefix.'&carrier=&tophone='.$phonenumber.'
accept-language: nl
content-type: multipart/form-data; boundary=---------------------------7d12442eab4
accept-encoding: gzip, deflate
user-agent: mozilla/4.0 (compatible; msie 5.0; windows 98; digext)
host: web.icq.com
content-length: '.$contentlength.'
proxy-connection: keep-alive
pragma: no-cache
cookie: uin='.$uin.'; sms_country='.$prefix.'; karmaservice1=yes; karmalogin='.$cookies.'; uin='.$uin.'; sms_country='.$prefix.'; karmaservice1=yes; karmalogin='.$cookies.'

-----------------------------7d12442eab4
content-disposition: form-data; name="carrier"


-----------------------------7d12442eab4
content-disposition: form-data; name="prefix"

'.$contentprefix.'
-----------------------------7d12442eab4
content-disposition: form-data; name="tophone"

'.$phonenumber.'
-----------------------------7d12442eab4
content-disposition: form-data; name="usession"

1
-----------------------------7d12442eab4
content-disposition: form-data; name="ureply"


-----------------------------7d12442eab4
content-disposition: form-data; name="ulastid"


-----------------------------7d12442eab4
content-disposition: form-data; name="usend"

1
-----------------------------7d12442eab4
content-disposition: form-data; name="unextid"


-----------------------------7d12442eab4
content-disposition: form-data; name="uhistorycounter"

1
-----------------------------7d12442eab4
content-disposition: form-data; name="count"

0
-----------------------------7d12442eab4
content-disposition: form-data; name="usubmitcount"

0
-----------------------------7d12442eab4
content-disposition: form-data; name="checknewmsg"

180000
-----------------------------7d12442eab4
content-disposition: form-data; name="charcount"

'.$charcount.'
-----------------------------7d12442eab4
content-disposition: form-data; name="msg"

'.$message.'
-----------------------------7d12442eab4
content-disposition: form-data; name="x"

30
-----------------------------7d12442eab4
content-disposition: form-data; name="y"

16
-----------------------------7d12442eab4--
';

$remote = fsockopen("web.icq.com", 80, &$errno, &$errstr, 30);

global $remote;
global $post;
fputs($remote, $post);

while (!feof($remote)) { $htmlreply.=fgets($remote,120); }
//uncomment for output: echo "".htmlspecialchars($htmlreply)."";
fclose($remote);

//****************************************************************// check if message is send if send 'moved permanently' is returned

if (eregi('moved permanently',$htmlreply))
{ echo "sms message successfully sent!"; }
else
{ echo "sms not sent!"; }

这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。

conn.php文件

 代码如下 复制代码

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script >
var xmlhttp
function showhint(str)
{
if (str.length==0)
  {
  document.getelementbyid("txthint").innerhtml=""
  return
  }
xmlhttp=getxmlhttpobject()
if (xmlhttp==null)
  {
  alert ("browser does not support http request")
  return
  }
xmlhttp.onreadystatechange=statechanged

var geturl="conn.php?q="+str
//sid是增加一个随机数 防止页面启用缓存技术·
geturl=geturl+"&sid="+math.random()
geturl=encodeuri(geturl);
geturl=encodeuri(geturl);
xmlhttp.open("get",geturl,true)
xmlhttp.send(null)
}
function statechanged()
{
if (xmlhttp.readystate==4 || xmlhttp.readystate=="complete")
 {
 document.getelementbyid("txthint").innerhtml=xmlhttp.responsetext
 }
}
function getxmlhttpobject()
{
var xmlhttp=null;
try
 {
 // firefox, opera 8.0+, safari
 xmlhttp=new xmlhttprequest();
 }
catch (e)
 {
 // internet explorer
 try
  {
  xmlhttp=new activexobject("msxml2.xmlhttp");
  }
 catch (e)
  {
  xmlhttp=new activexobject("microsoft.xmlhttp");
  }
 }
return xmlhttp;
}

</script>
</head>
<body bgcolor="#999999">
<center>
<form>
<table>
 <tr>
  <td>用户名:</td>
  <td><input type="text" id="txt1" onkeyup="showhint(this.value)"></td>
 </tr>
 <tr align="center">
  <td colspan="2"><span id="txthint"></span></td>
 </tr>
</table>
</form>
</center>
</body>
</html>

 

 代码如下 复制代码

<?php
$q=$_get["q"];
$q = urldecode($q);

if (strlen($q) > 0)
{
  $conn = @mysql教程_connect("localhost","root","1010") or die ("mysql连接错误");
  mysql_select_db("xin",$conn);
  mysql_query("set names 'utf8'");
  
  $sql = "select username from message where username = '$q'";
  $query = mysql_query($sql);
  @$row = mysql_fetch_array($query);
  
  if(!empty($row['username']))
  {
   $response = "<font color=red>已经被注册!</font>";
  }else
  {
   $response = "<font color=blue>恭喜!可以注册!</font>";
  }
  
  echo $response;
}

?>

数据库
drop database if exists `xin`;
create database `xin` /*!40100 default character set utf8 */;
use `xin`;


create table `message` (
  `id` int(11) not null auto_increment,
  `username` varchar(20) default null,
  primary key  (`id`)
) engine=innodb auto_increment=2 default charset=utf8 

这是一款由php +txt文本文件做的在线调用投票系统,无需数据库支持可以完成在线用户调查功能。
 代码如下 复制代码
<html>
<head>
<title>在线调查程序代码</title>
</head>
<body>
<form method="post" action="survey.php教程">
  <p><input type="radio" value="0" name="vote">调查项目一</p>
  <p><input type="radio" name="vote" value="1">调查项目二</p>
  <p><input type="radio" name="vote" value="2">调查项目三</p>
  <p><input type="radio" name="vote" value="3">调查项目四</p>
  <p><input type="radio" name="vote" value="4">调查项目五</p>
  <p><input type="hidden" name="go"  value="1">
  <p><input type="submit" value="提交" name="b1"></p>
  <a href="www.111cn.net.php?result=1">查看结果</a>
</form>
</body>
</html>

//survey.php

<?

 代码如下 复制代码

/*
无需数据库教程在线投票调查php代码

*/
  $data="data.txt";
  $votes="survey.txt";
  $dataf=file($data);        /*读出调查项目文件中的项目*/
  $file_votes=fopen($votes, "r");
  $line_votes=fgets($file_votes, 255);  /*读出已经记录的调查结果*/
  fclose($file_votes);
  $single_vote=explode("|", $line_votes); /* 并将数据按指定的字串切开,再将字串传回到数组变量中  */
   if ($result!=1)         /*如果已经接受了调查*/
   {
    $file_votes=file($votes, "r");
    if ($remote_addr == $file_votes[1])                           /*检查是不是同一个人*/
      {
       echo "<center><font color=red>您已投过票了,谢谢您的参与!</font></center>";
       exit;
      }

    /*如果ip不重复,则执行以下程序*/
    $ficdest=fopen($votes, "w");
    for ($i=0; $i<=count($dataf)-1; $i++)
      {
         if ($i == $vote)
         {                                 /*判断选择了哪个项目*/
          $single_vote[$i]+=1;
         }
             fputs($ficdest, "$single_vote[$i]|"); /*将数据写回文件*/
      }
       fputs($ficdest, " $remote_addr");/* //写入投票者ip*/
    fclose($ficdest);
    $result=1; /*投票成功*/
  }

  /*写入投票结果后并显示投票结果*/
  if ($result==1)
  {
   echo "<table cellpadding=10>";
   for ($i=0; $i<=count($dataf)-1; $i++)
    {
     /*取得投票总数*/
     $tot_votes+=$single_vote[$i];
    }
   for ($i=0; $i<=count($dataf)-1; $i++)
    {
     $imag=strval($i).".gif";/*判断用哪种条形图片来显示统计结果*/
      $stat[$i]=$single_vote[$i]/$tot_votes*100;  /*计算百分比*/
     $scla=$stat[$i]*5;/*条形图和放大倍数,这里是安百分数的5倍的相素的宽度来显示的*/
     echo "<tr><td><li><font face=verdana size=2>";
     echo "$dataf[$i]</font></td><td align=left><font face=verdana size=2>";
     echo "<img src="$imag" height=20 width=$scla align=middle>&nbsp;";/*输出条形码图*/
     printf("%.1f", "$stat[$i]");
     echo "%</font></td><td align=center><font face=verdana size=2>";
     /*输出本栏目投票数*/
     echo "$single_vote[$i]</font>";
     echo "</td></tr>";
   }
   echo "</table><p>";
   echo "<font face=verdana size=2>总投票数:$tot_votes </font>";
}

/*
data.txt 文件
调查项目一
调查项目二
调查项目三
调查项目四
调查项目五
*/
?>

[!--infotagslink--]

相关文章

  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • 借助FileReader实现将文件编码为Base64后通过AJAX上传

    这篇文章主要介绍了借助FileReader实现将文件编码为Base64后通过AJAX上传的方法,包括后端对文件数据解码并保存的PHP代码,需要的朋友可以参考下...2015-12-25
  • jQuery+ajax简单实现文件上传的方法

    这篇文章主要介绍了jQuery+ajax简单实现文件上传的方法,结合实例形式简单分析了jQuery基于ajax的post方法进行文件传输及asp.net后台处理技巧,需要的朋友可以参考下...2016-06-12
  • C#实现图片放大功能的按照像素放大图像方法

    这篇文章主要介绍了C#实现图片放大功能的按照像素放大图像方法,功能非常实用,需要的朋友可以参考下...2020-06-25
  • 适用于初学者的简易PHP文件上传类

    本文实例讲述了PHP多文件上传类,分享给大家供大家参考。具体如下:<&#63;phpclass Test_Upload{ protected $_uploaded = array(); protected $_destination; protected $_max = 1024000; protected $_messages =...2015-10-30
  • js实现上传文件添加和删除文件选择框

    这篇文章主要为大家详细介绍了js实现上传文件添加和删除文件选择框 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-25
  • python中翻译功能translate模块实现方法

    在本篇文章中小编给各位整理了一篇关于python中翻译功能translate模块实现方法,有需要的朋友们可以参考下。...2020-12-18
  • js 实现文件上传样式详情

    这篇文章主要介绍了js 实现文件上传样式,下面文章举例说明js 是如何实现文件上传样式的,附有代码详细解说,需要的朋友可以参考一下,希望对你有所帮助...2021-10-21
  • PHP利用APC模块实现大文件上传进度条的方法

    php 大文件带进度的上传,一直是一个令php程序员很苦恼的问题。查询baidu 、Google ,大体做带进度的上传方式为:flash+php,socket,apc+php等,下面我介绍了apc +php+ajax制作的带进度的上传,并贴出源码,希望对大家有用。 Altern...2015-10-30
  • C#文件上传的简单实现

    这篇文章主要为大家详细介绍了C#文件上传的简单实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 微信小程序实现导航功能的操作步骤

    这篇文章主要给大家介绍了关于微信小程序实现导航功能的操作步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • phpMyAdmin 高级功能设置的方法图解

    phpmyadmin还有高级功能可能大部份站长不知道吧,今天本文章就来给大家介绍phpMyAdmin 高级功能设置的方法图解,希望文章对大家会有所帮助。 phpMyAdmin 安装后,默认...2016-11-25
  • EMUI11上手体验 新颜值/新功能/新体验

    EMUI11值得升级吗?好不好用?下面小编带来EMUI11上手体验,一起来看看手机鸿蒙OS的提前预演...2020-12-08
  • php需登录的文件上传管理系统

    本文给大家介绍一个不错的需要登录的php 文件上传管理系统,功能简单有需要了解的同学可参考。 代码如下<&#63;php$admin_pw="admin";//管理密码$uploaddir="upload";//上传目录session_start();if($_GET['action']=="g...2015-10-30
  • asp.net html控件的File控件实现多文件上传实例分享

    asp.net中html控件的File控件实现多文件上传简单实例,开发工具vs2010使用c#语言,感兴趣的朋友可以了解下,必定是多文件上传值得学习,或许本文所提供的知识点对你有所帮助...2021-09-22
  • AngularJS 让人爱不释手的八种功能

    AngularJS 让人爱不释手的八种功能,想知道AngularJS哪八种功能让人喜欢就快点看下本文吧...2016-03-28
  • 小爱同学5.0新增了哪些机型 小爱同学5.0新功能介绍

    小爱同学5.0即将发布,据已知报道小爱同学5.0将新增机型,跟着小编一起来看看吧,顺便了解下即将都有哪些新功能面市吧...2020-12-08