php如何做成像qq附件那样的做多文件上传 我想做个多文件上传,就像qq添加附件那样的,点击添加按钮就直接出来浏览框。有什么好的方法啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个需要在客户端安装软件的,比如ActiveX. 多文件上传,这个html控件貌似没办法处理,除非自己写active控件,或者flash,as3有文件上传类可以用。 flash的swfupload多文件上传不错 http://www.swfupload.org/ 官网搜下 php swfupload有很多实例 php swfupload在网上没找到好的,看了还是不是很明白,谁有实例啊,贴一个上来吧 谁有修改过swfupload的,给个例子啊, 呵呵 刚前几天刚刚做了你说的类似这样的 也是多文件上传 我是这样的 多个文件上传将文件的ID号用SESSION记录 并用个临时变量来保存 最后保存的时候 出来SESSION 在更新临时变量就可以了 就是有点麻烦啊...... 是用swfupload做的啊,可否贴下代码啊 不是...就是普通的上传文件 比较乱哈 可以参考下<?php/*** 小区数据库图片上传* @Created 2010-7-7下午02:56:43* @name upfile_db.php* @author [email protected]* @version 1.0* ChengDu CandorSoft Co., Ltd.* @version $Id:upfile_db.php ,v 1.0 下午02:56:43 jc Exp $*/require_once 'config.php'; //引入全局配置check_login(); //检查用户是否登录$user_name = uname; //获取用户名$img_array = array();// 加载系统函数require_once('../includes/functions.php'); // 生成SecondHouse对象$esf = new SecondHouse;$resold = new Resold;$pdo=new MysqlPdo();extract($_GET);//增加小区图片 if ($_POST) { extract($_POST); if (empty($picid)) { $picid = '100000'; } $info = $pdo->getRow("select * from fc114_user_database where id='$dbid'"); //$picarray = explode(',',$_SESSION['info']); $img = $info['attach_id'].$_SESSION['info']; $picarray = explode(',',$img); //$picarray = explode(',',$_SESSION[info]); $num = count($picarray); if ($num>5) { echo "<script>alert('最多只能上传5张图片')</script>"; } else if ($_FILES['file1']['size']>226291) { echo "<script>alert('图片最大只允许200K以内')</script>"; } else { $upload = new UploadFile( $_FILES['file1']); $iCount = $upload->upload(); $aInfo = $upload->getSaveInfo(); $time = time(); for($i=0; $i<$iCount; $i++){ $arrInfo = $aInfo[$i]; // 加附件 $pdo->add(array( "name"=>$arrInfo['name'], "url"=>$arrInfo['url'], "type"=>$arrInfo['type'], "size"=>$arrInfo['size'], "checksum"=>$arrInfo['checksum'], "update_at"=>$time), DB_PREFIX_LAYOUT."esf_attach"); $p =$pdo->getLastInsID(); } $_SESSION['info'] .= $p.','; } } //删除指定图片 if ($_GET['action']=='del') { extract($_POST); //显示图片列表 if (!empty($dbid)) //编辑状态 { $pinfo = $pdo->getRow("select * from fc114_user_database where id='$dbid'"); if (is_array($pinfo) && eregi($attach_id,$pinfo['attach_id'])) //删除数据库里的 { $a = str_replace($attach_id.',','',$pinfo['attach_id']); $pdo->execute("UPDATE fc114_user_database set attach_id='$a' where id='$dbid'"); //更新数据库 //图片文件一起删除 $arrAttach = $pdo->getRow("select * from fc114_esf_attach where id='$attach_id'"); $attach = realpath(WEB_ROOT . $arrAttach['url']); $m_pic = str_replace(strrchr($attach,'.'),'_m'.strrchr($attach,'.'),$attach); $s_pic = str_replace(strrchr($attach,'.'),'_s'.strrchr($attach,'.'),$attach); @unlink($s_pic); @unlink($m_pic); @unlink($attach); $pdo->execute("DELETE FROM `fc114_esf_attach` WHERE (`id`='$attach_id')"); } else //删除Session保存的图片 { //图片文件一起删除 $arrAttach = $pdo->getRow("select * from fc114_esf_attach where id='$attach_id'"); $attach = realpath(WEB_ROOT . $arrAttach['url']); $m_pic = str_replace(strrchr($attach,'.'),'_m'.strrchr($attach,'.'),$attach); $s_pic = str_replace(strrchr($attach,'.'),'_s'.strrchr($attach,'.'),$attach); @unlink($s_pic); @unlink($m_pic); @unlink($attach); $pdo->execute("DELETE FROM `fc114_esf_attach` WHERE (`id`='$attach_id')"); $a = $_SESSION['info']; $a = str_replace($attach_id.',','',$a); $_SESSION['info'] = $a; } } else //新增状态 { //图片文件一起删除 $arrAttach = $pdo->getRow("select * from fc114_esf_attach where id='$attach_id'"); $attach = realpath(WEB_ROOT . $arrAttach['url']); $m_pic = str_replace(strrchr($attach,'.'),'_m'.strrchr($attach,'.'),$attach); $s_pic = str_replace(strrchr($attach,'.'),'_s'.strrchr($attach,'.'),$attach); @unlink($s_pic); @unlink($m_pic); @unlink($attach); $pdo->execute("DELETE FROM `fc114_esf_attach` WHERE (`id`='$attach_id')"); $a = $_SESSION['info']; $a = str_replace($attach_id.',','',$a); $_SESSION['info'] = $a; } }//显示图片列表if (!empty($dbid)) //编辑状态{// echo 'updata'; $info = $pdo->getRow("select * from fc114_user_database where id='$dbid'"); //$picarray = explode(',',$_SESSION['info']); $img = $info['attach_id'].$_SESSION['info']; $picarray = explode(',',$img); $num = count($picarray); for ($i=0;$i<($num-1);$i++) { // $img_array = array('0'=>array('id'=>'222','img'=>'/ui/img/05043120.gif'),'1'=>array('id'=>'id','img'=>'b.jpg')); $res = $pdo->getRow("SELECT * FROM fc114_esf_attach where id=$picarray[$i]"); $img_array[$i]['id']=$res['id']; $img_array[$i]['img']=$res['url']; }}else //新增状态{// echo 'add'; $picarray = explode(',',$_SESSION['info']); $num = count($picarray); for ($i=0;$i<($num-1);$i++) { // $img_array = array('0'=>array('id'=>'222','img'=>'/ui/img/05043120.gif'),'1'=>array('id'=>'id','img'=>'b.jpg')); $res = $pdo->getRow("SELECT * FROM fc114_esf_attach where id=$picarray[$i]"); $img_array[$i]['id']=$res['id']; $img_array[$i]['img']=$res['url']; }}// unset($_SESSION['info']);?><html><head><title>upfile</title><link href="/ui/css/common.css" rel="stylesheet" type="text/css" ><link href="/ui/member/css/htgl.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="/ui/js/jquery_last.js"></script><script type="text/javascript" src="/ui/js/common.js"></script><script type="text/javascript" src="/scripts/jquery-lightbox-0.5/js/jquery.lightbox-0.5.min.js"></script><script type="text/javascript">function ajax_send(img_url){ $('#up').show(); document.send_img.submit();}function deletePic(id){ $.ajax({ type: "POST", url: "upfile.php", data: "action=ajax&attach_id="+id, success: function(msg){ return true; } });}</script><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body><form action="upfile_db.php" name="send_img" method="post" enctype="multipart/form-data"><input type="hidden" name="dbid" value="<?php echo $dbid;?>"><div id="uploadPic" value=""><ul><?phpfor($i=0;$i<count($img_array);$i++){?><li picurl="" id="up" ><div class="displayimg"><img src="<?php if(empty($img_array[$i]['img'])){ echo '/ui/img/05043120.gif';} else { echo $img_array[$i]['img'];} ?>" /></div> <a class="delete" href="?action=del&attach_id=<?php echo $img_array[$i]['id']?>&dbid=<?php echo $dbid;?>" title="删除该图片" >删除该图片</a></li><?php}?></ul><div name="divUploader" class="cls_divUploader"><div class="loadbutton"><input id="fileUploadInput" name="file1" type="file" onChange="ajax_send(this.value);"></div> <span style="display:inline;" class="upload_ok"></span><span class="upload_error" style="display: none;"></span><span class="upload_ing" style="display:none">正在上传中,请稍等……</span><span class="upload_maxnum" style="display: none;">上传成功!</span></div><input id="backFunction" name="backFunction" value="$.c.Uploader.finish" type="hidden"><input name="Pic" id="Pic" value="/p1/big/n_3592859281665.jpg|/p1/big/n_3592865323265.jpg|/p1/big/n_3592851524865.jpg" type="hidden"><input name="PicDesc" id="PicDesc" value="||" type="hidden"><input name="PicPos" id="PicPos" value="2" type="hidden"><style>#uploadPic ul{list-style-type:none;margin:0px;padding:0px}#uploadPic li{float:left;width:82px;height:108px;margin:0 5px 10px 0;padding-bottom:3px; overflow:hidden; background:#eee; position:relative}#uploadPic .displayimg{width:80px;height:80px; display:table-cell; vertical-align:middle; text-align:center; *display:block; *font-size:72px; border:1px solid #ccc; overflow:hidden;background:#fff}#uploadPic .displayimg img{vertical-align:middle} #uploadPic div{clear:both}#uploadPic input.picDesc{width:80px; *width:78px; text-align:center; margin:0; border:1px solid #7F9DB9; margin-top:2px; display:none;}#uploadPic span.upload_error{background-color:#FFD7D7; color:#000; padding:4px; font-family:Tahoma; line-height:24px;}.cls_divUploader {height:150px; background-color:Transparent;}.loadbutton{width:74px;height:21px;background:url(/ui/img/loadbutton.gif);display:inline-block;position:relative;overflow:hidden;vertical-align:middle;float:left;cursor:pointer}#fileUploadInput {position:absolute; top:-2px; right:-2px; font-size:36px; filter:alpha(opacity:0); opacity: 0; height:20px;}.upload_ok{font-family:Tahoma}.delete{ display:block; width:13px; height:12px; background:url(/ui/img/closeyes.gif) no-repeat 0 0; line-height:100px; overflow:hidden; position:absolute; top:3px; right:3px; z-index:999}.upload_maxnum {color:#F00}.upload_ing {color:#F00}</style></div></form></body></html> js dom + php 数组处理。 我们老大要求可以多选的呢,好像必须用flash才行,php还是能做参考的,感谢[szzfl]共享代码的 在你下载 SWFUpload v2.2.1 地方,有一个 SWFUpload v2.2.0.1 Samples他的 demo/Features Demo 就是一个多选的实例 答案是这个貌似不是php的事情.可以使用javascript 模拟一个文件一个文件上传,或者都放在一个form里面一次提交就好了。 用flex 做 多文件上传…做出来就是flash, 【讨论】弱语言类型就不好吗? preg prelace 一些DIV 怎么在MYSQL 里创建存储过程。。。。。。。。 用php实现paypal收费的问题 33选7的所有组合怎么算? mysql 查询 问题 数组键名设置 有谁知道那种点对点的聊天,是怎么做的呀?用PHP!急,谢谢各位高手了! 类引用传入在php4 php5碰到的问题 数据库设计范式 有用PHP做过WEB上发手机短信的同学吗 PHP企业网站(cms)用过的人给一点建议
搜下 php swfupload有很多实例
<?php
/**
* 小区数据库图片上传
* @Created 2010-7-7下午02:56:43
* @name upfile_db.php
* @author [email protected]
* @version 1.0
* ChengDu CandorSoft Co., Ltd.
* @version $Id:upfile_db.php ,v 1.0 下午02:56:43 jc Exp $
*/
require_once 'config.php'; //引入全局配置
check_login(); //检查用户是否登录
$user_name = uname; //获取用户名
$img_array = array();
// 加载系统函数
require_once('../includes/functions.php');
// 生成SecondHouse对象
$esf = new SecondHouse;
$resold = new Resold;
$pdo=new MysqlPdo();
extract($_GET);
//增加小区图片
if ($_POST)
{
extract($_POST);
if (empty($picid))
{
$picid = '100000';
}
$info = $pdo->getRow("select * from fc114_user_database where id='$dbid'");
//$picarray = explode(',',$_SESSION['info']);
$img = $info['attach_id'].$_SESSION['info'];
$picarray = explode(',',$img);
//$picarray = explode(',',$_SESSION[info]);
$num = count($picarray); if ($num>5)
{
echo "<script>alert('最多只能上传5张图片')</script>";
}
else if ($_FILES['file1']['size']>226291)
{
echo "<script>alert('图片最大只允许200K以内')</script>";
}
else
{
$upload = new UploadFile( $_FILES['file1']);
$iCount = $upload->upload();
$aInfo = $upload->getSaveInfo();
$time = time();
for($i=0; $i<$iCount; $i++){
$arrInfo = $aInfo[$i];
// 加附件
$pdo->add(array(
"name"=>$arrInfo['name'],
"url"=>$arrInfo['url'],
"type"=>$arrInfo['type'],
"size"=>$arrInfo['size'],
"checksum"=>$arrInfo['checksum'],
"update_at"=>$time), DB_PREFIX_LAYOUT."esf_attach");
$p =$pdo->getLastInsID();
}
$_SESSION['info'] .= $p.',';
} }
//删除指定图片
if ($_GET['action']=='del')
{
extract($_POST);
//显示图片列表
if (!empty($dbid)) //编辑状态
{
$pinfo = $pdo->getRow("select * from fc114_user_database where id='$dbid'");
if (is_array($pinfo) && eregi($attach_id,$pinfo['attach_id'])) //删除数据库里的
{
$a = str_replace($attach_id.',','',$pinfo['attach_id']);
$pdo->execute("UPDATE fc114_user_database set attach_id='$a' where id='$dbid'"); //更新数据库
//图片文件一起删除
$arrAttach = $pdo->getRow("select * from fc114_esf_attach where id='$attach_id'");
$attach = realpath(WEB_ROOT . $arrAttach['url']);
$m_pic = str_replace(strrchr($attach,'.'),'_m'.strrchr($attach,'.'),$attach);
$s_pic = str_replace(strrchr($attach,'.'),'_s'.strrchr($attach,'.'),$attach);
@unlink($s_pic);
@unlink($m_pic);
@unlink($attach);
$pdo->execute("DELETE FROM `fc114_esf_attach` WHERE (`id`='$attach_id')");
}
else //删除Session保存的图片
{
//图片文件一起删除
$arrAttach = $pdo->getRow("select * from fc114_esf_attach where id='$attach_id'");
$attach = realpath(WEB_ROOT . $arrAttach['url']);
$m_pic = str_replace(strrchr($attach,'.'),'_m'.strrchr($attach,'.'),$attach);
$s_pic = str_replace(strrchr($attach,'.'),'_s'.strrchr($attach,'.'),$attach);
@unlink($s_pic);
@unlink($m_pic);
@unlink($attach);
$pdo->execute("DELETE FROM `fc114_esf_attach` WHERE (`id`='$attach_id')");
$a = $_SESSION['info'];
$a = str_replace($attach_id.',','',$a);
$_SESSION['info'] = $a;
} }
else //新增状态
{
//图片文件一起删除
$arrAttach = $pdo->getRow("select * from fc114_esf_attach where id='$attach_id'");
$attach = realpath(WEB_ROOT . $arrAttach['url']);
$m_pic = str_replace(strrchr($attach,'.'),'_m'.strrchr($attach,'.'),$attach);
$s_pic = str_replace(strrchr($attach,'.'),'_s'.strrchr($attach,'.'),$attach);
@unlink($s_pic);
@unlink($m_pic);
@unlink($attach);
$pdo->execute("DELETE FROM `fc114_esf_attach` WHERE (`id`='$attach_id')");
$a = $_SESSION['info'];
$a = str_replace($attach_id.',','',$a);
$_SESSION['info'] = $a;
}
}
//显示图片列表
if (!empty($dbid)) //编辑状态
{
// echo 'updata';
$info = $pdo->getRow("select * from fc114_user_database where id='$dbid'");
//$picarray = explode(',',$_SESSION['info']);
$img = $info['attach_id'].$_SESSION['info'];
$picarray = explode(',',$img);
$num = count($picarray);
for ($i=0;$i<($num-1);$i++)
{
// $img_array = array('0'=>array('id'=>'222','img'=>'/ui/img/05043120.gif'),'1'=>array('id'=>'id','img'=>'b.jpg'));
$res = $pdo->getRow("SELECT * FROM fc114_esf_attach where id=$picarray[$i]");
$img_array[$i]['id']=$res['id'];
$img_array[$i]['img']=$res['url'];
}
}
else //新增状态
{
// echo 'add';
$picarray = explode(',',$_SESSION['info']);
$num = count($picarray);
for ($i=0;$i<($num-1);$i++)
{
// $img_array = array('0'=>array('id'=>'222','img'=>'/ui/img/05043120.gif'),'1'=>array('id'=>'id','img'=>'b.jpg'));
$res = $pdo->getRow("SELECT * FROM fc114_esf_attach where id=$picarray[$i]");
$img_array[$i]['id']=$res['id'];
$img_array[$i]['img']=$res['url'];
}
}// unset($_SESSION['info']);
?>
<html>
<head><title>upfile</title>
<link href="/ui/css/common.css" rel="stylesheet" type="text/css" >
<link href="/ui/member/css/htgl.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/ui/js/jquery_last.js"></script>
<script type="text/javascript" src="/ui/js/common.js"></script>
<script type="text/javascript" src="/scripts/jquery-lightbox-0.5/js/jquery.lightbox-0.5.min.js"></script><script type="text/javascript">
function ajax_send(img_url)
{
$('#up').show();
document.send_img.submit();
}
function deletePic(id)
{
$.ajax({
type: "POST",
url: "upfile.php",
data: "action=ajax&attach_id="+id,
success: function(msg){
return true;
}
});
}
</script><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body>
<form action="upfile_db.php" name="send_img" method="post" enctype="multipart/form-data">
<input type="hidden" name="dbid" value="<?php echo $dbid;?>">
<div id="uploadPic" value="">
<ul>
<?php
for($i=0;$i<count($img_array);$i++)
{
?>
<li
picurl="" id="up" ><div class="displayimg"><img
src="<?php if(empty($img_array[$i]['img'])){
echo '/ui/img/05043120.gif';}
else
{
echo $img_array[$i]['img'];}
?>" /></div>
<a class="delete" href="?action=del&attach_id=<?php echo $img_array[$i]['id']?>&dbid=<?php echo $dbid;?>" title="删除该图片"
>删
除该图片</a></li>
<?php
}
?>
</ul>
<div name="divUploader" class="cls_divUploader">
<div class="loadbutton">
<input id="fileUploadInput" name="file1" type="file" onChange="ajax_send(this.value);"></div> <span style="display:inline;" class="upload_ok"></span>
<span class="upload_error" style="display: none;"></span>
<span class="upload_ing" style="display:none">正在上传中,请稍等……</span>
<span class="upload_maxnum" style="display: none;">上传成功!</span>
</div>
<input id="backFunction" name="backFunction" value="$.c.Uploader.finish" type="hidden">
<input name="Pic" id="Pic" value="/p1/big/n_3592859281665.jpg|/p1/big/n_3592865323265.jpg|/p1/big/n_3592851524865.jpg" type="hidden"><input name="PicDesc" id="PicDesc" value="||" type="hidden">
<input name="PicPos" id="PicPos" value="2" type="hidden"><style>
#uploadPic ul{list-style-type:none;margin:0px;padding:0px}
#uploadPic li{float:left;width:82px;height:108px;margin:0 5px 10px 0;padding-bottom:3px; overflow:hidden; background:#eee; position:relative}
#uploadPic .displayimg{width:80px;height:80px; display:table-cell; vertical-align:middle; text-align:center; *display:block; *font-size:72px; border:1px solid #ccc; overflow:hidden;background:#fff}
#uploadPic .displayimg img{vertical-align:middle}
#uploadPic div{clear:both}
#uploadPic input.picDesc{width:80px; *width:78px; text-align:center; margin:0; border:1px solid #7F9DB9; margin-top:2px; display:none;}
#uploadPic span.upload_error{background-color:#FFD7D7; color:#000; padding:4px; font-family:Tahoma; line-height:24px;}
.cls_divUploader {height:150px; background-color:Transparent;}
.loadbutton{width:74px;height:21px;background:url(/ui/img/loadbutton.gif);display:inline-block;position:relative;overflow:hidden;vertical-align:middle;float:left;cursor:pointer}
#fileUploadInput {position:absolute; top:-2px; right:-2px; font-size:36px; filter:alpha(opacity:0); opacity: 0; height:20px;}
.upload_ok{font-family:Tahoma}
.delete{ display:block; width:13px; height:12px; background:url(/ui/img/closeyes.gif) no-repeat 0 0; line-height:100px; overflow:hidden; position:absolute; top:3px; right:3px; z-index:999}
.upload_maxnum {color:#F00}
.upload_ing {color:#F00}
</style></div>
</form>
</body>
</html>
他的 demo/Features Demo 就是一个多选的实例
可以使用javascript 模拟一个文件一个文件上传,或者都放在一个form里面一次提交就好了。