您的位置:首页 > 编程语言 > PHP开发

【PHP原生】动态多文件上传并将路径存储在数据库

2018-10-16 11:24 417 查看

动态多文件上传并将路径存储在数据库

1、上传页面index.html

[code]<!DOCTYPE html >
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>多图片上传</title>
<script>
//全局变量,代表文件域的个数,并用该变量区分文件域的name属性
var file_count =1;
//增加文件 域
function additem(id){
if(file_count >9){
alert("注意:最多上传十张图片!");
return;
}
//定义行变量row;单元格变量cell;单元格内容变量str。
var row,cell,str;
//在指定id的table中插入一行
row =eval("document.all["+'"'+id+'"'+"]").insertRow();
if(row !=null){
//设置行的背景颜色
row.bgColor="white";
//在行中插入单元格
cell = row.insertCell();
//设置str的值,包括一个文件域和一个删除按钮
str='<input onselectstart="return false" class="tf" onpaste="return false" type="file" name="file['+ file_count +']" onkeydown="return false;"/>';
str +=" <input type="+'"'+"button"+'"'+" value="+'"'+"删除"+'"'+" onclick='deleteitem(this,"+'"'+"tb"+'"'+");'>";
//文件域个数增加
file_count++;
//设置单元格的innerHTML为str的内容
cell.innerHTML=str;
}
}
//删除文件域
function deleteitem(obj,id){
var rowNum,curRow;
curRow = obj.parentNode.parentNode;
rowNum =eval("document.all."+id).rows.length -1;
eval("document.all["+'"'+id+'"'+"]").deleteRow(curRow.rowIndex);
file_count--;
}
</script>
</head>
<body>
<formaction="upload.php"method="post"enctype="multipart/form-data">
<inputonselectstart="returnfalse"class="tf"onpaste="returnfalse"type="file"name=file[0]onkeydown="returnfalse;"/>
<inputtype=buttonvalue="增加"onclick='additem("tb")'/><br/>
<tablecellspacing="0"id="tb"style="width:400px">
</table>
<br/>
<br/>
<inputtype="submit"name="submit"value="上传"/>
<inputtype="reset"name="reset"value="重置"/>
</form>
</body>
</html>

2、表单处理页面

[code]<?php
include "conn.php";
//设置编码为UTF-8,以避免中文乱码
header('Content-Type:text/html;charset=utf-8');
$fileArray = $_FILES['file'];
//获取多个文件的信息
$upload_dir = 'upload/';
//保存上传文件的目录
foreach ($fileArray['error'] as $key => $error) {
if (($fileArray["type"][$key] == "image/gif" || $fileArray["type"][$key] == "image/jpeg" || $fileArray["type"][$key] == "image/png"
      || $fileArray["type"][$key] == "image/pjpeg") && $fileArray["size"][$key] < 1000000) {
//限制上传文件大小_单位B。1M=1024KB=1048576 B
if ($error == UPLOAD_ERR_OK) {
//PHP常量UPLOAD_ERR_OK=0,表示上传没有出错
$temp_name = $fileArray['tmp_name'][$key];
$file_name = date("YmdHis") . rand() . '.png';
//日期+随机数命名图片
move_uploaded_file($temp_name, $upload_dir . $file_name);
//存入数据库命名和路径
$title = $file_name;
$path = $upload_dir . $file_name;
// 注意valuse后的格式 (' " . $变量名 . " ')
$query = mysql_query($conn, "insert into images(title,path) values ('" . $title . "','" . $path . "')");
echo "<script>alert('上传成功!');window.location.href='up_images.php';</script>";
} else {
echo "<script>alert('上传失败!');window.location.href='up_images.php';</script>";
}
}
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: