十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
获取路径下的所有图片文件名,写入数据库或是某个变量,在别的页面调用程序上传,再从别的页面读出来就行了。
目前创新互联已为成百上千家的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器托管、企业网站设计、宜城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
以下是示例代码:
?php
function upload($fileName,$filePath)
{
//判断该文件是否是用户根据POST方式提交到服务器的上传文件
foreach($_FILES[$fileName]['tmp_name'] as $k=$v)
{
if($_FILES[$fileName]['name'][$k]!="")
{
$result=check($_FILES[$fileName]['size'][$k],$_FILES[$fileName]['type'][$k],$_FILES[$fileName]['name'][$k]);
if($result['error']==1)
{
echo $result['msg']."br";
echo "出错文件:".$result['name']."br";
}
else
{
$arrTT=explode(".",$_FILES[$fileName]['name'][$k]);
$extName=$arrTT[count($arrTT)-1];
$NewName=sha1(microtime()).".".$extName;
if(move_uploaded_file($v,$filePath.$NewName));
$arrWW[]=$NewName;
}
}
}
return $arrWW;
}
function check($size,$types,$name)
{
if($size=5242880)
{
$result['msg']='文件过大!';
$result['error']=1;
$result['name']=$name;
}
$arrType=array('image/pjpeg','image/gif','image/x-png','audio/mp3','application/msword','application/vnd.ms_excel','application/octet-stream','application/vnd.ms-powerpoint');
if(!in_array($types,$arrType))
{
$result['msg']='文件类型不匹配!';
$result['error']=1;
$result['name']=$name;
}
return $result;
}
?
有详细的注释,不清楚直接CALL我
主要是利用了JS来控制文件域,增加或者删除来实现的。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=gbk" /
meta name="Keywords" content=""/
meta name="Description" content=""/
title动态添加图片/title
script type="text/javascript"
function addimg(){
//包含所有文件域的DIV
var div = document.getElementById('imgs');
//文件域
var input = document.createElement("input");
input.name = "img[]";
input.type = 'file';
//添加
div.appendChild(input);
//删除按钮
var button = document.createElement("a");
button.href = "javascript:;";
button.innerHTML = '删除';
div.appendChild(button);
//换行
var br = document.createElement("br");
div.appendChild(br);
//在按钮上增加删除的事件
button.onclick = function(){
input.parentNode.removeChild(input);
this.parentNode.removeChild(this);
br.parentNode.removeChild(br);
}
}
/script
/head
body
form method="POST" enctype="multipart/form-data" action="upload.php"
请选择图片:
div id="imgs"
input type="file" name="img[]"/br/
/div
input type="button" onclick="addimg()" value="增加"/
/form
/body
/html
原理都一样,循环接参,你打印一下它的参数就够就明白了,存储数据库,可以将图片路径之间用|或者逗号,或者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
?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["bai"]["name"];
$tmpname=$_FILES["bai"]["tmp_name"];
$size=$_FILES["bai"]["size"];
$type=$_FILES["bai"]["type"];
$error=$_FILES["bai"]["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="bai" id="bai" method="POST" action="wjsc1.php" enctype="multipart/form-data"
上传文件input type="file" name="bai[]" id="bai" /
br
input type="file" name="bai[]" id="bai" /
br
input type="file" name="bai[]" id="bai" /
br
span style="magrin:0px;padding:0px"input type="image" name="img"/ src="images/submit.gif"/span
/form
/body
/html
自己对比哇,管家要把数组处理好
把你图片上传那中间的一段代码改成这个:
//图片上传
$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);
参考如下
多个提交和一个提交的道理是相同的,只是一些细节上要注意。
提交一个,表单是:
form
input type=text name=name
input type=text name=sex
input type=text name=age
input type=text name=address
/form
PHP存数据库的语句是:
$sql="insert into tab(...) values ($_POST[...])";//省略字段和值
那么多个提交的方法一,表单是:
form
input type=text name=name1input type=text name=sex1input type=text name=age1input type=text name=address1
input type=text name=name2input type=text name=sex2input type=text name=age2input type=text name=address2
/form
PHP存数据库语句是:
$sql="insert into tab(...) values ($_POST[...1])";//省略字段和值
mysql_query($sql);
$sql="insert into tab(...) values ($_POST[...2])";//省略字段和值
mysql_query($sql);
上面方法一写的例子是两条,多条的方法相同,技巧就是输出表单使用JS的循环,存盘的PHP代码也可以循环,并且能够判断为空的就不提交,比如表单20条,只填了5条,就只存5条到数据库。
方法二是使用数组,表单:
form
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
/form
PHP代码是:
for ($i=0;$icount($_POST["name"]);$i++)
if ($_POST["name"][$i]!='')
{
$sql="insert into tab(...) values ($_POST[...][$i])";//省略字段和值
mysql_query($sql);
}
这样表单可以写任意多行,PHP里面是数组,能够自动获取有多少数据。