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

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

1、上传页面index.html

<!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、表单处理页面

<?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>";
        }
    }
}

原文地址:https://www.cnblogs.com/php99/p/9796946.html

时间: 2024-08-08 22:27:37

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

ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)

上篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如果需求不确定是多少文件 则我们就需要动态的添加文件上传框,以实现灵活性. 基于上篇基本框架是不变的,主要修改以下几个方面 1.jQuery实现动态添加删除文件上传框 2.获取文件上传框的ID 3.ajaxfileupload.js里将ID数组转换为需要的Object数组 依次解决上面问题 一.实现动

如何将ISO文件上传到XenServer本地存储中

如何将ISO文件上传到XenServer本地存储中 从XenServer5.0.0之后ISO文件不能直接拷贝到/opt/xensource/packages/目录下,该目录下只能用于存放Xenserver Tools文件,那当用户要挂载ISO进行虚拟机安装时有什么方法呢?有两种方法: 一.通过CIFS挂载Windows共享文件夹的方式,这种方式操作简单,通过XenCenter的New Storage向导即可完成(操作略),而且当ISO较多且变动频繁时,强力推荐该种方法 二.将ISO文件直接上传到

Web下文件上传下载的路径问题

工程结构 1.生成一个文件到指定文件夹下 //产生一个唯一的名字 this.setFileName(String.valueOf(System.currentTimeMillis())); String path = ServletActionContext.getServletContext().getRealPath("/template/WordExportTemplate"); //工程下的完整路径名 String filepath = path +"\\"

.Net Core实现将文件上传到七牛云存储

功能:将图片上传到七牛云存储 准备工作 注册七牛账号,提交实名认证(基本上1天内内审核通过) 登录七牛后台->对象存储->新建空间 (基本概念:https://developer.qiniu.com/kodo/manual/3978/the-basic-concept) 新建空间后会有免费域名可以使用.但是:测试域名,限总流量,限单 IP 访问频率,限速,仅供测试使用,不能用于自定义域名的 CNAME.建议还是使用自己的已经ICP备案的域名 CDN加速域名(自己的ICP备案的域名)提交后有个处

使用JS实现页面中动态添加文件上传输入项

1. 编写JSP 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 3 <html> 4 <head> 5 <title>My JSP 'uplo

文件上传采用虚拟路径实现项目部署和用户资源分离

实现用户资源和项目分离使用到了下面这个工具类: 保存路径工具类 package cn.gukeer.common.utils; import com.github.pagehelper.StringUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.core.io.ClassPathResource; import

js动态添加文件上传框

页面元素添加为 <tr id="att" style="display:none;"> <td style="text-align:right;">附件文件:</td> <td> <div id="div_fujian"> <div class="input-outer"><input type="file"

1.6 文件上传组件

1.6 文件上传组件1.6.1 基本形制<input type="file" name="myfile"/> 1.6.2 常用属性1.6.2.1 类型typetype="file"说明这个控件是一个文件上传组件,由一个文本框和一个按钮组合而成. 1.6.2.2 名称namename是文件上传组件名,是后台服务器负责处理文件的部分与前台上传组件联系的唯一途径. 前台需要通过它告知后台,后台需要它了解前台. 详情请参考1.6.4.1中&l

JavaWeb 文件上传下载

1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下载功能实现的. 文件上传下载实际上是两步操作,第一是文件上传,就是将本地文件上传到服务器端,实现文件多用户之间的共享,第二是文件下载,就是将服务器端的文件下载到本地磁盘. 1.2. 文件上传下载实现原理 首先,需要知道文件是如何实现上传及下载的.文件上传及下载实现原理如下: 文件上传实现流程如下: