zoukankan      html  css  js  c++  java
  • PHP学习笔记——上传文件到服务端的文件夹下

    环境

    开发包:appserv-win32-2.5.10

    服务器:Apache2.2

    数据库:phpMyAdmin

    语言:php5,java

    平台:windows 10

    需求

    编写一个PHP脚本页面,可以向服务端上传文件或资源

    代码

    add.html

    <table>
                <form method="post" action="add_back.php" enctype="multipart/form-data">
                      <tr>
                        <th>作品名</th>
                        <td><input type="text" style="500px; height:30px;" name="w_name"/></td>
                      </tr>
                      <tr>
                        <th>压缩包</th>
                        <td><input type="file" name="apk_url"/></td>
                      </tr>
                      <tr>
                        <th>源码压缩包</th>
                        <td><input type="file" name="zip_url"/></td>
                      </tr>
                      <tr>
                        <th>预览图片</th>
                        <td><input type="file" name="img_url"/></td>
                      </tr>
                      <tr>
                        <th>简介</th>
                        <td><textarea name="about" style="500px;height:150px;"></textarea></td>
                      </tr>
                      <tr>
                          <th></th>
                        <td><input name="Fruit" type="checkbox" value="mztk" style="40px;" />我已阅读并同意<a href="#">免责条款</a></td>
                      </tr>
                      <tr> 
                          <td></td>
                        <td><input class="sc" type="submit" value="上传" />  </td>
                      </tr> 
                </form>
            </table>

    add_back.php

    <?php
            
            function GetRandStr($len) 
            { 
                $chars = array( 
                    "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",  
                    "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",  
                    "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",  
                    "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",  
                    "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",  
                    "3", "4", "5", "6", "7", "8", "9" 
                ); 
                $charsLen = count($chars) - 1; 
                shuffle($chars);   
                $output = ""; 
                for ($i=0; $i<$len; $i++) 
                { 
                    $output .= $chars[mt_rand(0, $charsLen)]; 
                }  
                return $output;  
            } 
    
            error_reporting(0); //不会报错
            session_start();        
            $u_id = $_SESSION["id"];//获取当前用户ID
            
            $apk_file = "../apk/";
            $zip_file = "../zip/";//你可以加上,文件类型,大小等判断
            $img_file = "../img/";//设置文件保存目录 注意包含
            
            $time = date('Y-m-d H:i:s',time());//文件名加上时间码
            $s = str_replace(' ', '', $time);//去掉空格
            $s = str_replace(':','',$s);//去掉:
            $btime = date('YmdHis',time());//文件名加上时间码
            
            $name = $_POST['w_name'];    //名称
            $about = $_POST['about'];    //关于
            
            $apk = $_FILES['apk_url'][name];//获取文件名
            $zip = $_FILES['zip_url'][name];//获取文件名
            $img = $_FILES['img_url'][name];//获取文件名
            
            $apk = substr($apk, -4);//取文件后缀
            $zip = substr($zip, -4);
            $img = substr($img, -4); 
            
            $name = GetRandStr(5);
            
            $apk = $btime.$name.$apk ;//存储文件名=时间+随机符+后缀
            $zip = $btime.$name.$zip ;
            $img = $btime.$name.$img ;
            
            //echo $apk;
            
            //$_FILES['img']['tmp_name'],存的文件夹.存的名字
              if(
                move_uploaded_file($_FILES['apk_url']['tmp_name'], $apk_file.$apk) && 
                move_uploaded_file($_FILES['zip_url']['tmp_name'], $zip_file.$zip) && 
                move_uploaded_file($_FILES['img_url']['tmp_name'], $img_file.$img) ){
            //echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$img_file$img' height='200px' width='300px'></center>";
            echo "保存成功!";
            //插入数据库
            include('../mysql.php');//连接数据库
            session_start();        //获取当前用户
            $u_id = $_SESSION["id"];
            
            //echo $u_id;
            //echo "<br/>";
            //echo $name;
            //echo "<br/>";
            //echo $about;
            //echo "<br/>";
            //echo "第一个路径:$apk_file$apk";
            //echo "<br/>";
            //echo "第二个路径:$zip_file$zip";
            //echo "<br/>";
            //echo "第三个路径:$img_file$img";
            //echo "<br/>";
            
            $sql = "INSERT INTO word(w_id,u_id,w_name,apk_url,zip_url,img_url,about,w_time)VALUES('$btime$u_id','$u_id','$name','$apk_file$apk','$zip_file$zip','$img_file$img','$about','$time')";
            if(mysql_query($sql,$conn)){
                echo '写入数据库成功!<a href="user_zuoping.php">返回作品</a>';
            } else {
                echo '写入数据库失败,已删除保存文件!<a href="javascript:history.back(-1);">返回</a>';
                unlink ($apk_file.$apk);
                unlink ($zip_file.$zip);
                unlink ($img_file.$img);
            }
              }else{
                  echo '保存失败!<a href="javascript:history.back(-1);">返回</a>';
                //$myfile路径如:zip/2015-09-16142918 s.jpg
                unlink ($apk_file.$apk);
                unlink ($zip_file.$zip);
                unlink ($img_file.$img);
                }
                  ?>

  • 相关阅读:
    ssm框架整合入门系列——删除-员工的删除
    ssm框架整合入门系列——修改-员工的修改
    git新建分支并推送至远程仓库库
    想带你去火星看日出
    offsetTop无法获取目标display为none的值
    Vue axios 读取api.github.com展示用户信息
    ssm框架整合入门系列——新增-员工的添加
    课时10:列表:一个打了激素的数组1
    课时9:了不起的分支和循环3
    课时8:了不起的分支和循环2
  • 原文地址:https://www.cnblogs.com/lw1234/p/4991925.html
Copyright © 2011-2022 走看看