很多关注后端开发的朋友很希望了解php上传多张图片框架 input file用了multiple属性,而且选择了多张图片,PHP该怎么上传?,今天我爱编程网为大家整理了相关文章,一起来看看吧!
input file用了multiple属性,而且选择了多张图片,PHP该怎么上传?
其实就那两个函数\x0d\x0ais_uploaded_file()和move_uploaded_file()\x0d\x0a是循环上传的。你打印下$_FILES这个超全局数组就明白了。下面我的测试代码上传图片的:\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a
\x0d\x0a
无标题
\x0d\x0a\x0d\x0a\x0d\x0a
\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a
$v){\x0d\x0aif(is_uploaded_file($_FILES['images']['tmp_name'][$k])){\x0d\x0a$save=$path.$_FILES['images']['name'][$k];\x0d\x0aecho $save."
";\x0d\x0aif(move_uploaded_file($_FILES['images']['tmp_name'][$k],$save)){\x0d\x0aecho "上传成功!";\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0aecho "
";\x0d\x0aprint_r($_FILES);\x0d\x0aecho "
";\x0d\x0a}\x0d\x0a\x0d\x0a?>
我爱编程网
PHP上传多张图片代码
<?php } function news(){?>
<form action="?type=productNews" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td> </td></tr><tr><td height="30"><label>名称A:
<input name="title" type="text" id="title" size="30" />
</label></td></tr><tr><td height="30"><label>名称B:
<input name="title_en" type="text" id="title_en" size="30" />
</label></td></tr><tr><td height="30"><label>分类:
<select name="ptype" id="ptype">
<?php $conn = new db_conn();
$sql = "SELECT * FROM product_type";
$result = $conn->db_query($sql);
while($rows=mysql_fetch_assoc($result)){?>
<option value="<?php echo $rows['id']; ?>"><?php echo $rows['name']." / ".$rows['name_en']; ?></option>
<?php } $conn->db_close(); ?>
</select>
</label></td></tr><tr><td height="30"><label>图片:<br>
<input name="file[]" type="file" size="50" /><br>
<input name="file[]" type="file" size="50" /><br>
<input name="file[]" type="file" size="50" /><br>
<input name="file[]" type="file" size="50" /><br>
<input name="file[]" type="file" size="50" /><br>
<input name="file[]" type="file" size="50" /><br>
</label></td></tr><tr><td>说明A:
<input name="text" type="text" id="text" size="30" /></td>
</tr><tr><td>说明B:
<input name="en_text" type="text" id="en_text" size="30" /></td>
</tr><tr><td align="center"><label>
<input type="submit" name="button" id="button" value="提交" />
</label></td></tr><tr><td> </td></tr></table></form>
<?php }function productNews(){
extract($_POST);
$upimage = "upimage/".date("Ym")."/";//上传位置
if(!is_dir($upimage)){
mkdir($upimage); }
$filenum=count($_FILES['file']['tmp_name']);
for($i=0;$i<$filenum;$i++){
$file = "";
if(is_uploaded_file($_FILES['file']['tmp_name'][$i])){//是否用POST上传
if($_FILES['file']['type'][$i] != ("image/jpeg" || "image/pjpeg")){
die(printTop("只能上传jpg图像!")); }
$im = imagecreatefromjpeg($_FILES['file']['tmp_name'][$i]);
$file = $upimage.date("YmdHis").rand(1000,9999);
$w = imagesx($im);
$h = imagesy($im);
if($w > 800 || $h > 800){
ResizeImage($im,800,800,$file.".jpg");
}else{ move_uploaded_file($_FILES['file']['tmp_name'][$i],$file.".jpg");}
//以下为增加行
//设置水印类型 1字符串 2图片 请自行设置
$watertype=1;
//设置水印字符串 请自行设置
$waterstring="MY hand MY mouth";
//设置水印图片名 请自行设置
$waterimage="water.gif";
$destination=$file.".jpg";
$image_size = getimagesize($destination);
$iinfo=getimagesize($destination,$iinfo);
$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
$white=imagecolorallocate($nimage,255,255,255);
$black=imagecolorallocate($nimage,0,0,0);
$red=imagecolorallocate($nimage,255,0,0);
imagefill($nimage,0,0,$white);
$simage =imagecreatefromjpeg($destination);
imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
imagefilledrectangle($nimage,1,$image_size[1]-15,120,$image_size[1],$white);
switch($watertype)
{
case 1: //加水印字符串
imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
break;
case 2: //加水印图片
$simage1 =imagecreatefromgif("xplore.gif");
imagecopy($nimage,$simage1,0,0,0,0,85,15);
imagedestroy($simage1);
break;
}
imagejpeg($nimage, $destination);
imagedestroy($nimage);
imagedestroy($simage);
//以上为增加行//
ResizeImage($im,130,130,$file."n.jpg");}
$date = date("Y-m-d H:i:s");
$conn = new db_conn();
$sql = "INSERT INTO product (ptype,title,title_en,image,text,text_en,date) VALUES ($ptype,'$title','$title_en','$file','$text','$text_en','$date')";
$result = $conn->db_query($sql);
if($result){
echo printTop("添加成功!");}else{
echo printTop("添加失败!");}
$conn->db_close();}
}
function types(){?>
php如何实现一次性上传多个文件?
在服务器中保存失败";\x0d\x0a }\x0d\x0a }\x0d\x0a }\x0d\x0a echo "
成功上传 ".$up_ok_files. " 个文件
"; \x0d\x0a}\x0d\x0a?>\x0d\x0a\x0d\x0a 如果对 $_FILES['myfile'] 这个数组的结构不清楚,那么可以在循环之前加入这句代码将其显示出来:\x0d\x0aprint_r($_FILES['myfile']);\x0d\x0a\x0d\x0a 对这个数组的结构了解之后,理解上述代码就比较容易了。\x0d\x0aforeach循环实现\x0d\x0a常规下,php上传一张图片,页面上添加一个文件域,上传后,得到的数组是二维数组\x0d\x0a转变一下,\x0d\x0a页面上添加多个文件域,并且他们的name属性相同,而且是以数组形式提交(比如:name="file[]")\x0d\x0a那么上传后,得到的是三维数组\x0d\x0a而,php中,foreach循环对遍历数组那真是完美至极\x0d\x0a用foreach遍历一次这个三维数组,得到的结果就又是二维数组,那么,就和上传一张图片一样一样的了
以上就是我爱编程网为大家带来的php上传多张图片框架 input file用了multiple属性,而且选择了多张图片,PHP该怎么上传?,希望能帮助到大家,更多相关信息,敬请关注我爱编程网!