
正文
php多图片上传加数据 php怎么上传多个图片
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
新手请教多个图片上传,怎么写入数据库(PHP)
原理都一样,循环接参,你打印一下它的参数就够就明白了,存储数据库,可以将图片路径之间用|或者逗号,或者json 系列化来存储:
?php
print_r($_FILES);//你可以打印一下它,看看它的结构
if(!empty($_FILES)){
foreach($_FILES['file']['name'] as $k=$v){
//$_FILES["file"]都变成$_FILES["file"][$k]操作进行操作吧
if ($_FILES['file'][$k]['error'] == 0) {
$filetype = array("jpg","JPG");
$arr = explode(".", $_FILES["file"][$k]["name"]);
...//同样的代码
}
}
}
?
form name="" action="" method="post" enctype="multipart/form-data"
input type="file" name="file[]" /br /
input type="file" name="file[]" /br /
input type="file" name="file[]" /br /
input type="file" name="file[]" /br /
input type="file" name="file[]" /br /
input type="file" name="file[]" /br /
input type="submit" name="a" value="提交" /
/form
相关问答
Q1: 请问:php如何把上传的多张图片存入数据库的同一个字段中呢?
input type="file[]" name="photo" /
input type="file[]" name="photo" /
input type="file[]" name="photo" /
这样会成为一个数组,存的时候把这个数组用implode() 函数分割成字符串,取出来的时候可以使用explode函数(这个方法存的是路径)
还有一种方法是直接存二进制的,这种方法几乎不用对数据库压力很大,而且删除操作会留下很大的磁盘碎片
但是要了解
给你个电子书上面都有
Q2: 请帮忙解决PHP上传多图片,并在数据库写入文件路径的问题,谢谢!
把php多图片上传加数据你图片上传那中间php多图片上传加数据的一段代码改成这个php多图片上传加数据:
//图片上传
$files_arr = [];
foreach($_FILES['pictures']['error'] as $key = $error) {
if($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES['pictures']['tmp_name'][$key];
$name = date('Ymd').rand(1000, 9999).$_FILES['pictures']['name'][$key];
$dir = 'upload/';
$filenameurl = $dir.$name;
$files_arr[] = $filenameurl;
move_uploaded_file($tmp_name, $filenameurl);
}
}
$filenameurl = join(',', $files_arr);
Q3: 求php同时上传两张图片并根据时间存入数据库!根据下面的代码来修改!
我给你个简单的吧 这个可以实现三个一起上传 这个是我自己用的 做了点调整
uploadCore.php 页面代码
?php
/*
* @(#)UploadFile.php (beta) 2005/2/19
*
* exBlog上传附件类,可同时处理用户多个上传文件。效验文件有效性后存储至指定目录。
* 可返回上传文件的相关有用信息供其它程序使用。(如文件名、类型、大小、保存路径)
* 使用方法请见本类底部(UploadFile类使用注释)信息。
*/
class UploadFile {
var $user_post_file = array(); //用户上传的文件
var $user_name_u = array();//username
//var $user_name_y = array(); //usertype
var $save_file_path; //存放用户上传文件的路径
var $max_file_size; //文件最大尺寸
var $last_error; //记录最后一次出错信息
//默认允许用户上传的文件类型
var $allow_type = array('gif', 'jpg', 'png', 'zip', 'rar', 'txt', 'doc', 'pdf');
var $final_file_path; //最终保存的文件名
var $save_info = array(); //返回一组有用信息,用于提示用户。
/**
* 构造函数,用与初始化相关信息,用户待上传文件、存储路径等
*
* @param Array $file 用户上传的文件
* @param String $path 存储用户上传文件的路径
* @param Integer $size 允许用户上传文件的大小(字节)
* @param Array $type 此数组中存放允计用户上传的文件类型
*/
function UploadFile($file, $uname, $path, $size = 2097152, $type = '') {
$this-user_name_u = $uname;
//$this-user_name_y = $utype;
$this-user_post_file = $file;
$this-save_file_path = $path;
$this-max_file_size = $size; //如果用户不填写文件大小,则默认为2M.
if ($type != '')
$this-allow_type = $type;
}
/**
* 存储用户上传文件,检验合法性通过后,存储至指定位置。
* @access public
* @return int 值为0时上传失败,非0表示上传成功的个数。
*/
function upload() {
for ($i = 0; $i count($this-user_post_file['name']); $i++) {
//如果当前文件上传功能,则执行下一步。
if ($this-user_post_file['error'][$i] == 0) {
//取当前文件名、临时文件名、大小、扩展名,后面将用到。
$userty = $this-user_name_y[$i];
$uuname = $this-user_name_u[$i];
$name = $this-user_post_file['name'][$i];
$tmpname = $this-user_post_file['tmp_name'][$i];
$size = $this-user_post_file['size'][$i];
$mime_type = $this-user_post_file['type'][$i];
$type = $this-getFileExt($this-user_post_file['name'][$i]);
//检测当前上传文件大小是否合法。
if (!$this-checkSize($size)) {
$this-last_error = "这个文件的大小太大了. 您上传的文件名: ".$name;
$this-halt($this-last_error);
continue;
}
//检测当前上传文件扩展名是否合法。
if (!$this-checkuplod($type)) {
$this-last_error = "允许上传文件类型: .".$type." 您上传的文件名: ".$name;
$this-halt($this-last_error);
continue;
}
//检测当前上传文件是否非法提交。
if(!is_uploaded_file($tmpname)) {
$this-last_error = "文件非法提交. 您上传的文件名: ".$name;
$this-halt($this-last_error);
continue;
}
//移动文件后,重命名文件用。
$basename = $this-getBaseName($name, ".".$type);
//移动后的文件名
$saveas = $basename."-".time().".".$type;
//$saveas = $basename.".".$type;
//组合新文件名再存到指定目录下,格式:存储路径 + 文件名 + 时间 + 扩展名
$this-final_file_path = $this-save_file_path."/".$saveas;
if(!move_uploaded_file($tmpname, $this-final_file_path)) {
$this-last_error = $this-user_post_file['error'][$i];
$this-halt($this-last_error);
continue;
}
//存储当前文件的有关信息,以便其它程序调用。
$this-save_info[] = array("uname" = $uuname,"name" = $name, "type" = $type,
"mime_type" = $mime_type,
"size" = $size, "saveas" = $saveas,
"path" = $this-final_file_path);
}
}
return count($this-save_info); //返回上传成功的文件数目
}
/**
* 返回一些有用的信息,以便用于其它地方。
* @access public
* @return Array 返回最终保存的路径
*/
function getSaveInfo() {
return $this-save_info;
}
/**
* 检测用户提交文件大小是否合法
* @param Integer $size 用户上传文件的大小
* @access private
* @return boolean 如果为true说明大小合法,反之不合法
*/
function checkSize($size) {
if ($size $this-max_file_size) {
return false;
}
else {
return true;
}
}
/**
* 检测用户提交文件类型是否合法
* @access private
* @return boolean 如果为true说明类型合法,反之不合法
*/
function checkType($extension) {
foreach ($this-allow_type as $type) {
//echo "pre";
//print_r($type);
//print_r($extension);
$str=substr($extension['name'][0],strrpos($extension['name'][0],'.')+1);
//echo $str;
//exit();
if (strcasecmp($str, $type) == 0)
return true;
}
return false;
}
function checkuplod($extension) {
foreach ($this-allow_type as $type) {
//echo "pre";
//print_r($type);
//print_r($extension);
//$str=substr($extension['name'][0],strrpos($extension['name'][0],'.')+1);
//echo $str;
//exit();
if (strcasecmp($extension, $type) == 0)
return true;
}
return false;
}
/**
* 显示出错信息
* @param $msg 要显示的出错信息
* @access private
*/
function halt($msg) {
printf("bUploadFile Error:/b %s br\n", $msg);
exit();
}
/**
* 取文件扩展名
* @param String $filename 给定要取扩展名的文件
* @access private
* @return String 返回给定文件扩展名
*/
function getFileExt($filename) {
$stuff = pathinfo($filename);
return $stuff['extension'];
}
/**
* 取给定文件文件名,不包括扩展名。
* eg: getBaseName("j:/hexuzhong.jpg"); //返回 hexuzhong
*
* @param String $filename 给定要取文件名的文件
* @access private
* @return String 返回文件名
*/
function getBaseName($filename, $type) {
$basename = basename($filename, $type);
return $basename;
}
}
?
调用和使用方法
$tmp=$Form;
require ('uploadCore.php');
//设置允许用户上传的文件类型。
$type = array('gif', 'jpg', 'png', 'zip', 'rar', 'txt');
//实例化上传类,第一个参数为用户上传的文件组、第二个参数为存储路径、
//第三个参数为文件最大大小。如果不填则默认为2M
//第四个参数为充许用户上传的类型数组。如果不填则默认为gif, jpg, png, zip, rar, txt, doc, pdf
$upload = new UploadFile($user_upload_file,$user_name, $pathy, 500000, $type);
//print"pre";
//print_r($upload);
//上传用户文件,返回int值,为上传成功的文件个数。
$num = $upload-upload();
if ($num != 0) {
//echo "上传成功br";
$jeff_upload_info=$upload-getSaveInfo();
//取得文件的有关信息,文件名、类型、大小、路径。用print_r()打印出来。
//print_r($jeff_upload_info['uname']);
//print"pre";
//print_r($jeff_upload_info);
//exit();
//格式为: Array
// (
// [0] = Array(
// [name] = example.txt
// [type] = txt
// [size] = 526
// [path] = j:/tmp/example-1108898806.txt
// )
// )
//获得文件保存路径或者其他的信息
for ($jeff_upload_success_num = 0; $jeff_upload_success_num $num; $jeff_upload_success_num++)
{
$tmp['zz_upload_file'] = $jeff_upload_info[$jeff_upload_success_num]['uname'];
$tmp['zz_user_name'] = $jeff_upload_info[$jeff_upload_success_num]['name'];
$tmp['zz_user_uname'] = $jeff_upload_info[$jeff_upload_success_num]['saveas'];
$tmp['zz_size'] = $jeff_upload_info[$jeff_upload_success_num]['size'];
$tmp['zz_addtime'] = date("Y-m-d");
$tmp['zz_passtime'] = date("Y-m-d");
//print"pre";
//print_r($tmp);
$q_sql = data_insert($tmp,'hczb_zzwd');//插入数据库类
//print_r($q_sql);
//$jeff_upload_success_url = "\r\n".''.$jeff_upload_info[$jeff_upload_success_num]['path'].'[/img]';
//$jeff_upload_success_img .= $jeff_upload_success_url; //获得代码
}
if($q_sql)
{
echo "scriptwindow.location.href='third.php';/script";
$_SESSION['f'] = 3;
}
else
{
echo "scriptalert('sorry,操作失败');window.location.href='third.php';/script";;
}
//echo $num."个文件上传成功";
}
else {
echo "scriptalert('sorry,上传失败,允许上传的格式是:'".$type."'');window.location.href='third.php';/script";
}
表单调用:
table width="91%" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:12px;"
tr
td valign="top" fieldset
legendimg src="images/third_11.jpg" //legend
table width="98%" border="0" cellspacing="0" cellpadding="0" style="margin-top:12px;" align="center"
tr
td class="tianjie"table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
td width="16%" align="center"附件序号 /td
td width="34%" align="center"附件名称 /td
td width="43%" align="center"附件说明/td
td width="7%" align="center" /td
/tr
/table
table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
td width="16%" align="center"附件一 /td
td width="38%" align="center"input name="user_upload_file[]" type="file" class="bg" id="filename" size="16" //td
td width="43%" align="center"table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
td width="10" align="right"img src="images/input_l.gif" width="6" height="28" //td
td width="120"
input name="user_name[]" type="text" id="user_name" class="srk" size="35" onchange="clear_errors(document.all.dis_error_user_name,this);"/ /td
td width="9" align="left"img src="images/input_r.gif" width="5" height="28" //td
/tr
/table/td
td width="3%" align="center" /td
/tr
/table
table width="100%" border="0" cellspacing="0" cellpadding="0" class="lx"
tr
td width="16%" align="center"附件二 /td
td width="38%" align="center"input name="user_upload_file[]" type="file" class="bg" id="filename" size="16" //td
td width="43%" align="center"table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
td width="10" align="right"img src="images/input_l.gif" width="6" height="28" //td
td width="120"
input name="user_name[]" type="text" id="user_name1" class="srk" size="35" onchange="clear_errors(document.all.dis_error_user_nameo,this);"/ /td
td width="9" align="left"img src="images/input_r.gif" width="5" height="28" //td
/tr
/table/td
td width="3%" align="center" /td
/tr
/table
table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
td width="16%" align="center"附件三 /td
td width="38%" align="center"input name="user_upload_file[]" type="file" class="bg" id="filename" size="16" //td
td width="43%" align="center"table width="100%" border="0" cellspacing="0" cellpadding="0"
tr
td width="10" align="right"img src="images/input_l.gif" width="6" height="28" //td
td width="120"
input name="user_name[]" type="text" id="user_name2" class="srk" size="35" onchange="clear_errors(document.all.dis_error_user_namet,this);"/ /td
td width="9" align="left"img src="images/input_r.gif" width="5" height="28" //td
/tr
/table/td
td width="3%" align="center" /td
/tr
/table
table width="100%" border="0" cellspacing="0" cellpadding="0" style="margin:15px;"
tr
td align="center"input type="submit" name="sub" value=" " style="border:0px; width:166px; height:28px; background:url(images/third_19.jpg) no-repeat; cursor:hand" //td
/tr
/table
/td
/tr
/table
/fieldset/td
/tr
/table
有哪里不明白的 M我 告诉你
php多图片上传加数据的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php怎么上传多个图片、php多图片上传加数据的信息别忘了在本站进行查找喔。






