‘壹’ PHP 上传多张图片后存储地址到MYsql数据库怎么做
在数据库表中定义一个字符串类型的字段存储图片路径就可以了。
‘贰’ 关于PHP实现多张图片上传的问题
看PHP帮助手册里关于$_FILES数组:
http://docs.php.net/manual/zh/reserved.variables.files.php
‘叁’ php如何上传多张图片 点击添加一张图片就出来一个框
我刚刚做出来一个,给你看一下:
1。upload.html页面,即先是input type=file的文件:
<html>
<head>
<title></title>
</head>
<body>
<form enctype="multipart/form-data" action="do_upload.php" method="POST">
<fieldset>
<legend>图片上传</legend>
第一张图片<input name="userfile[]" type="file"><br>
第二张图片<input name="userfile[]" type="file"><br>
第三张图片<input name="userfile[]" type="file"><br>
第四张图片<input name="userfile[]" type="file"><br>
第五张图片<input name="userfile[]" type="file"><br>
<input type="submit" value="Send File">
</fieldset>
</form>
</body>
</html>
2。do_upload.php页面,即处理多文件上传的页面:
<?php
//全局数组$_FILES
//$_FILES['userfile']['tmp_name']文件在web服务器中临时存储的位置
//$_FILES['userfile']['name']用户系统中的文件名称
//$_FILES['userfile']['size']文件的字节大小
//$_FILES['userfile']['type']文件的MIME类型,text/plain,image/gif
//$_FILES['userfile']['error']与文件上载相关的错误代码
?>
<?php
for ($i=0;$i<count($_FILES['userfile']['tmp_name']);$i++)
{
$upfile=$new_folder."/".$_FILES['userfile']['name'][$i];//此处路径换成你的
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$upfile)){
echo "第".($i+1)."张图片上传成功<br>";
}
else{
echo "第".($i+1)."张图片上传不了<br>";
}
}
?>
测试一下,肯定可以的。
‘肆’ php一次上传多张图片并生成相应的缩略图的代码
这里压缩为61x61
<?php
/*
作者:遥远的期待
QQ:15624575
个人主页:www.phptogether.com www.d1php.info
*/
function upload_multi($path,$photo,$i){
$uploaddir = './'.$path;//文件存放目录
if(!file_exists($uploaddir))//如果目录不存在就新建
$uploaddir=mkdir($uploaddir);
$piece = explode('.',$photo['name'][$i]);
$uploadfile = $uploaddir . '/'.md5($piece[0]).'.'.$piece[1];
$result = move_uploaded_file($photo['tmp_name'][$i], $uploadfile);
if(!$result){
exit('上传失败');
}
list($width_orig, $height_orig) = getimagesize($uploadfile);
if ($width_orig!=61||$height_orig!=61) {
$image_p = imagecreatetruecolor(61, 61);
if($piece[1]=="jpg"||$piece[1]=="jpeg"){
$image = imagecreatefromjpeg($uploadfile);
imageresampled($image_p, $image, 0, 0, 0, 0, 61, 61, $width_orig, $height_orig);
imagejpeg($image_p,$uploadfile);
}else if($piece[1]=="gif"){
$image = imagecreatefromgif($uploadfile);
imageresampled($image_p, $image, 0, 0, 0, 0, 61, 61, $width_orig, $height_orig);
imagegif($image_p,$uploadfile);
}
}
return basename($uploadfile);
}
if($_POST['tijiao']){
extract($_POST);
$i=0;
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
upload_multi($email,$_FILES["pictures"],$i);
}
$i++;
}
}
?>
<script language="javascript">
function go_up(){
document.getElementById('new_up').innerHTML+='<input type="file" name="pictures[]" /><br>';
}
</script>
<form action="php.php" method="post" enctype="multipart/form-data">
<p>多图片上传<br>
<input type="text" name="username" /><br>
<input type="text" name="email" /><br>
<input type="file" name="pictures[]" /><br>
<div id="new_up"></div>
<input type="button"" name="add_img" value="新增上传" onclick="go_up()"/><br>
<input type="submit" value="Send" name="tijiao"/><br>
</p>
</form>
‘伍’ php 怎样实现同时上传多张图片
同时上传多张图片有很多个意思和多种处理方法:
第一:动态添加图片同步上传查看地址:http://..com/link?url=17-5llw1OeRxG42g-_sbaqHNaf1WQhR_AiYRFrXNIJtoXFgAUkMs0_
第二:上传图片时可以一次选择多张图片:这个需要用flash;
第三:单个添加图片,异步上传,这个需要用到一些插件来实现,jquery.form.js jquery.js
‘陆’ php怎么一个file上传多张图片
<?php /** *类说明: * 使用new关键字实像化类,类中有两个公用方法, * 方法create_input创建表单按键,请在相应的表单处引用该方法就可创建上传表单的input按键 * 方法get_upfile()用于处理上传文件 * 该类由 游天小虾 制作,网页制作交流群:69574955 * **/ class upfile { private $name = 'filename';//input表单名 private $namecount = 2;//设置上传文件的个数 private $type = array('jpg','jpeg','gif','png');//文件格式 private $size = '1024';//文件大小单位kb private $upname = '';//上传文件信息 private $updir = 'upfile/'; private $movename = '';//移动后的文件名 private $uparrs = array();//多文件上传数组 private $error_type =0;//文件上传产生的错误 /** * 创建文件上传的表单控件 * */ public function create_input(){ if(floor($this->namecount) == 1){ $input = "<p><input type='file' id=".$this->name." name=".$this->name."></p>"; }else{ for($i=0;$i<($this->namecount);$i++){ $input .= "<p><input type='file' id='".$this->name."[]' name='".$this->name."[]'></p>"; } } echo "$input"; } /** * 初始文件信息$file = $_FILES['file']['tem_name'] * **/ private function get_part(){ if($this->namecount == 1){ //判断是否是多文件上传 if($_FILES[$this->name]['tmp_name']){ $this->upname = $_FILES[$this->name]; }else{ $this->error_type += 100; //文件信息错误观点 100; } }else{ if($_FILES[$this->name]){ $this->uparrs = $this->more_updata($_FILES[$this->name],$this->namecount);//对$_FILES取得的文件上信息重写 }else{ $this->error_type += 100; //文件信息错误观点 100; } } } /** * 多文件上传时,数组重写 * **/ private function more_updata($arrs,$num){ for($i=0;$i<$num;$i++){ $data[] =array('name'=>$arrs[name][$i],'type'=>$arrs[type][$i],'tmp_name'=>$arrs[tmp_name][$i],'error'=>$arrs['error'][$i],'size'=>$arrs['size'][$i]); } return $data; } /** * 判断上传文件大小 * **/ private function chck_size(){ if($this->upname['size']*1000 < $this->size){ $this->error_type += 300; //文件信息错误观点 300; } } /** * 判断上传文件的类型 * **/ private function chck_type(){ if(!in_array($this->get_suffix($this->upname['name']),$this->type)){ $this->error_type += 500; //文件信息错误观点 500; } } /** * 格式化上传后的文件名 * **/ private function chck_name(){ $this->movename = date(Ymd).substr(md5(rand(0,date(Hms))),0,6)."."; $this->movename .= $this->get_suffix($this->upname['name']); } /** * 移动文件 * **/ private function move_file(){ if($this->updir){ if(!move_uploaded_file($this->upname['tmp_name'],$this->updir.$this->movename)){ $this->error_type += 700; //文件信息错误观点 700; } }else{ mkdir($this->updir,"w"); chmod($this->updir,777); if(!move_uploaded_file($this->upname['tmp_name'],$this->updir.$this->movename)){ $this->error_type += 700; //文件信息错误观点 700; } } } /** * 取得文件的后缀名 * **/ private function get_suffix($filename){//取得文件后缀名 $part = pathinfo($filename); $suffix = $part['extension']; return $suffix; } /** * 文件上传处理 * **/ public function get_upfile() {//主上传方法 if(floor($this->namecount) == 1){ $this->get_part(); $this->chck_name(); $this->chck_type(); $this->chck_size(); if($this->error_type ==0){$this->move_file();} if($this->error_type ==0){ echo "$this->movename 上传成功 <br>"; }else{ echo "$this->movename 上传失败,错误: $this->error_type <br>"; $this->error_type=0; }; }else{ $this->get_part(); for($i=0;$i<floor($this->namecount);$i++){ $this->upname = ($this->uparrs[$i]); $this->chck_name(); $this->chck_type(); $this->chck_size(); if($this->error_type ==0){$this->move_file();} if($this->error_type ==0){ echo "$this->movename 上传成功 <br>"; }else{ echo "$this->movename 上传失败,错误: $this->error_type <br>"; $this->error_type=0; }; } } } } $up = new upfile(); if($_POST['t1']){ $up->get_upfile(); } ?> <form name='f1' enctype = multipart/form-data action="" method="post"> <input type='text' name='t1'><br> <?php $up->create_input(); ?> <input type='submit' value='上传'> </from> 刚不久写的一个文件上传的类!上面已经有说明了,你参考一下,不明白的话,可以问我,或者加入我们的QQ群讨论!
‘柒’ php中上传多张图片,如何解决
使用swfupload上传代码,它是把swf和javascript结合起来,做成上传代码。功能应该是当前最丰富的。
它可以实现纯粹html、javascrip难以逾越的功能:
(1)可以同时上传多个文件;
(2)类似AJAX的无刷新上传;
(3)可以显示上传进度;
(4)良好的浏览器兼容性;
具体详见网络:
http://ke..com/view/1332553.htm
‘捌’ php 如何实现图片上传前预览,并且有多个图片上传和预览
<form name="form4" id="form4" method="post" action="#"> <input type="file" name="file4" id="file4" ōnchange="preview4()" /> <img id="pic4" src="" alt="图片在此显示" width="120"/> </form> <scrīpt type="text/javascrīpt"> function preview4(){ var x = document.getElementById("file4"); var y = document.getElementById("pic4"); if(!x || !x.value || !y) return; var patn = /\.jpg$|\.jpeg$|\.gif$/i; if(patn.test(x.value)){ y.src = "file://localhost/" + x.value; } else{ alert("您选择的似乎不是图像文件。"); } } </scrīpt>
‘玖’ PHP上传多张图片代码
单张的图片上传是不复杂的,这里涉及到多张图片上传和对图片格式的校验,保证上传的一定是图片,防止上传其他文件到服务器。
基本实现算法是使用数组的形式,把所有的图片提交个一个数组,对数组的元素进行一个个的处理。
<?php
/*********************************************
* 文件:uploadimg.php
* 用途:图片上传程序
* 版本:v1.0
* 创建:2005-03-28 11:07
* 修改:2005-04-06 08:43
* 版权:heiyeluren
*********************************************/
// 图片目录
$img_dir = "../upload/";
// …… html 显示上传界面
/* 图片上传处理 */
// 把图片传到服务器
// 初始化变量
$uploaded = 0;
$unuploaded = 0;
//只允许五张图片上传
for ($i=0; $i<=5; $i++)
{
//获取当前图片的信息
$is_file = $_FILES['imgfile']['name'][$i];
//如果当前图片不为空
if (!empty($is_file))
{
//把当前图片的信息存储到变量里
$result[$i] = "
<tr class=td2 align=center>
<td>". $_FILES['imgfile']['name'][$i] ."</td>
<td>". round($_FILES['imgfile']['size'][$i]/1024, 2) ."K</td>
<td>". $_FILES['imgfile']['type'][$i] ."</td>
<td>";
// 判断上传的图片的类型是不是jpg,gif,png,bmp中的一种,同时判断是否上传成功
if (
$_FILES['imgfile']['type'][$i] == "image/pjpeg" ||
$_FILES['imgfile']['type'][$i] == "image/gif" ||
$_FILES['imgfile']['type'][$i] == "image/x-png" ||
$_FILES['imgfile']['type'][$i] == "image/bmp"
)
{
//如果上传的文件没有在服务器上存在
if (!file_exists($img_dir . $_FILES['imgfile']['name'][$i]))
{
//把图片文件从临时文件夹中转移到我们指定上传的目录中
move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],
$img_dir . $_FILES['imgfile']['name'][$i]);
$result[$i] .= "成功";
$uploaded++;
}
else //如果文件已经在服务器上存在
{
$result[$i] .= "<font color=red>文件已存在</font>";
$unuploaded++;
continue;
}
}
else
{
$result[$i] .= "<font color=red>失败</font>";
$unuploaded++;
}
$result[$i] .= "</td></tr>";
} //end if
} // end for
// 如果没有选择任何图片
if (empty($result))
{
prompt_msg("错误信息", "没有选择任何图片。", "返回上一步", "uploadimg.php?action=upload" );
exit();
}
// 显示所有上传后的结果
echo " <table cellpadding=4 cellspacing=1 border=0 class=table width=400 align=left>
<tr class=navi align=center>
<td>文件名</td>
<td>大小</td>
<td>类型</td>
<td>上传结果</td>
</tr>
";
foreach( $result as $value)
{
echo $value;
}
echo "<tr class=td1>
<td colspan=4>共上传 " . ($uploaded + $unuploaded) . ", 成功: $uploaded, 失败:<font color=red> $unuploaded</font> </td>
</tr>
<tr class=navi>
<td colspan=4 align=center>[ <a href='uploadimg.php?action=upload' title='继续上传'>继续上传</a> ] [ <a href='image.php' title='浏览图片'>浏览图片</a> ]</td>
</tr>
</table>
";
?>
‘拾’ PHP多图片上传问题,不管我选择几个图片进行上传,但是,只能传上去最后添加的一张
<?php
$db="editor";
$user="admin";
$pas="admin";
$conn=mysql_connect("localhost",$user,$pas) or die("连接错误");
mysql_select_db($db,$conn);
mysql_query("set names 'GB2312'");
$nba=$_FILES[""]["name"];
$tmpname=$_FILES[""]["tmp_name"];
$size=$_FILES[""]["size"];
$type=$_FILES[""]["type"];
$error=$_FILES[""]["error"];
if (file_exists("../upload/".$nba )){
echo "文件已存在";
}else {
foreach ($error as $key=>$val){
if($val==0){
move_uploaded_file($tmpname[$key],"../upload/" .rand().$nba[$key]);
$imgpath="../upload/" .rand().$nba[$key];
echo $imgpath;
$sql1 = "INSERT INTO news (title, content,imgpath) VALUES ('a','b','$imgpath')";
echo $nba[$key]."--------".$tmpname[$key]."----------".$size[$key]."--------------".$type[$key];
echo "<br>";
}
else {
echo "wrong!";}
}
}
?>
<html>
<body>
<form name="" id="" method="POST" action="wjsc1.php" enctype="multipart/form-data" >
上传文件<input type="file" name="[]" id="" />
<br>
<input type="file" name="[]" id="" />
<br>
<input type="file" name="[]" id="" />
<br>
<span style="magrin:0px;padding:0px"><input type="image" name="img"/ src="images/submit.gif"></span>
</form>
</body>
</html>
自己对比哇,管家要把数组处理好