php多文件上传(实例)

Posted 零点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php多文件上传(实例)相关的知识,希望对你有一定的参考价值。

此处以上传图片为例:

html文件:

技术分享图片
 1 <html lang="en">
 2     <meta charset="UTF-8">
 3     <title>上传图片</title>
 4     <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
 5     <style>
 6         #w1 img{
 7             width: 350px;
 8             height: auto;
 9             margin: 10px;
10         }
11     </style>
12 <body>
13 <form method="post" action="d.php" enctype="multipart/form-data">
14     <input name=uploads[] type="file" multiple onchange="tu(this)">
15     <input type="submit" name="uploadpic" value="上传">
16 </form>
17 <div id="w1"></div>
18 </body>
19 <script>
20     function tu(dom){
21         var url = dom.files;
22         //var path = window.URL.createObjectURL(dom.files[0]);
23         //var path1 = window.URL.createObjectURL(dom.files[1]);
24         $.each(url, function(i){
25             var path = window.URL.createObjectURL(url[i]);
26             $(#w1).append("<img src=‘"+ path +"‘>");
27         });
28         //$(‘#w1‘).html("<img src=‘"+ path +"‘>");
29         // $(‘#w2‘).html("<img src=‘"+ path1 +"‘>");
30         //alert(path);
31     }
32 </script>
33 </html>
html表单部分

php文件:

技术分享图片
 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Administrator
 5  * Date: 2018/3/20
 6  * Time: 18:28
 7  */
 8 header("content-type:text/html; charset=utf8");
 9 
10 if($_POST[‘uploadpic‘]==‘上传‘){
11     // 链接数据库
12     $conn=mysqli_connect("localhost","root","root", "mydata") or die("数据库连接错误".mysql_error());
13     mysqli_query($conn, "set names utf8");
14     //上传图片保存的路径
15     $dest_folder = "upload";
16     // 判断保存路径文件是否存在
17     if(!file_exists($dest_folder)){
18         mkdir($dest_folder, 700); // 创建文件夹, 700最高权限
19     }
20     //$arr = array();   //定义数组存放上传图片的名称方便你以后会用的。
21     $count = 0; // 统计上传文件个数
22     $tp = array(".gif", ".jpg", ".png");   //检查上传文件是否在允许上传的格式
23     // 循环取出上传文件
24     foreach ($_FILES["uploads"]["error"] as $key => $error){
25         // 获取原文件名
26         $former_name = $_FILES["uploads"]["name"][$key];
27         //截取原文件名后缀
28         $a = substr($former_name,strrpos($former_name,‘.‘));
29         //截取原文件名
30         $prename = substr($former_name,0,strrpos($former_name,‘.‘)); //echo $prename; exit;
31 
32         // 判断文件的格式
33         if(!in_array($a, $tp)){
34             echo "<script> alert(‘系统不支持改文件格式!‘); </script>";
35             exit;
36         }
37         // 判断每一个文件是否成功上传
38         if($error == UPLOAD_ERR_OK){
39             // 获取临时文件名称
40             $tmp_name = $_FILES["uploads"]["tmp_name"][$key];
41             // 确保文件的唯一性,对文件进行重命名 (日期+随机数+后缀)
42             $save_name = time().mt_rand(1000,9999).$a;
43             // 保存文件的路径
44             $uploadfile = $dest_folder.‘/‘.$save_name;
45             // 路径保存到数据库
46             $query = "insert into product(name, tupian) values(‘$prename‘,‘$uploadfile‘)";
47             $res = mysqli_query($conn, $query);
48             if(!$res){
49                 die(‘错误:‘.mysqli_error($conn));
50             }
51             // 移动文件到指定的路径
52             move_uploaded_file($tmp_name, $uploadfile);
53 
54             // 打印保存的文件
55             echo $prename."原名称<br/>";
56             echo $uploadfile."保存路径<br/>";
57             $count ++;
58         }
59     }
60     echo "总共".$count."文件";
61 }
php部分

 

以上是关于php多文件上传(实例)的主要内容,如果未能解决你的问题,请参考以下文章

php代码小实例

php多文件上传实现代码

下面这段php代码如何实现多图上传

Rest实现多文件上传

jQuery uploadify 文件上传

php如何实现一次性上传多个文件