lizf2019 发表于 2023-8-19 20:51

【前端】代码求助

本帖最后由 lizf2019 于 2023-8-19 20:54 编辑

源码:https://k-n.lanzouw.com/iyXX215u95wd
看着主要是layui的框架 奈何不太熟悉
看了半个多小时也不太明白咋改

想把这个
对话框改大一些 把文本框变成
可以多行的文本域 然后按钮的位置放在中间或者左边

求大佬指点{:301_997:}
js:

(主要是在压缩包的index.php和js里)
JS:
function sendfile(){
    layer.open({
      type: 1,
      title: '传输文件',
      //skin: 'layui-layer-rim', //加上边框
      //area: ['420px', '240px'], //宽高
      content: '<div class="layui-container"><br><form action="?type=uploadfile" method="post" enctype="multipart/form-data"><input type="file" name="file" id="file"><br><br><input type="submit" name="submit" value="立即上传" class="layui-btn"></form><br></div>',
      anim:5
    });
}

function sendtext(){
    layer.open({
      type: 1,
      title: '传输文字',
      //area: ['420px', '240px'],
      content: '<div class="layui-container"><br><form action="?type=text" method="post"><div class="layui-form-item"><label class="layui-form-label">文字</label><div class="layui-input-inline"><input type="text" name="text" required lay-verify="required" placeholder="需要传输的文字" autocomplete="off" class="layui-input"></div></div><input type="submit" value="发送" class="layui-btn"><br></form><br></div>',
      anim:5
    });
}

function gettext(){
    layer.open({
      type: 1,
      title: '接收文字',
      //area: ['420px', '240px'],
      content: '<div class="layui-container"><br><form action="?type=get" method="post"> <div class="layui-form-item"><label class="layui-form-label">提取码</label><div class="layui-input-inline"><input type="text" name="getcode" required lay-verify="required" placeholder="输入提取码" autocomplete="off" class="layui-input"></div></div><input type="submit" value="获取" class="layui-btn"><br></form><br></div>',
      anim:5
    });
}

function getfile(){
    layer.open({
      type: 1,
      title: '接收文件',
      //area: ['420px', '240px'],
      content: '<div class="layui-container"><br><form action="?type=getfile" method="post"> <div class="layui-form-item"><label class="layui-form-label">提取码</label><div class="layui-input-inline"><input type="text" name="getcode" required lay-verify="required" placeholder="输入提取码" autocomplete="off" class="layui-input"></div></div><input type="submit" value="获取" class="layui-btn"><br></form><br></div>',
      anim:5
    });
}index.PHP:

<?php
//检测是否安装(阅读协议)
$file = "./install/install.lock";
if(!file_exists($file))
{
    header("Location: ./install/index.php");
}
//引入配置文件,为后台清空数据做铺垫
include 'config.php';
?>
<!--版权说明
      程序名称: 一码空传
      作者:轻云
      协议:MIT开源协议
      授权类型:免费授权
      官网:http://send.s-gew.com/
      请注明版权!
-->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?=title; ?></title>
<link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css" />
</head>
<body>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="./other/layer/layer.js"></script>
<script src="./js/functions.js"></script>

<ul class="layui-nav" lay-filter="">
<li class="layui-nav-item"><a href=""><?=title; ?></a></li>
</ul>

<br><br>
<div class="layui-container">
<blockquote class="layui-elem-quote layui-quote-nm">公告:<?=tip; ?></blockquote>
<br>

<fieldset class="layui-elem-field">
<legend>选择传输类型</legend>
<div class="layui-field-box">
   <a class="layui-btn layui-btn-fluid"><i class="layui-icon"></i> 传输文件</a><br><br>
<a class="layui-btn layui-btn-primary layui-btn-fluid"><i class="layui-icon"></i> 传输文字</a>
</div>
</fieldset>
<br>

<fieldset class="layui-elem-field">
<legend>选择接收类型</legend>
<div class="layui-field-box">
   <a class="layui-btn layui-btn-warm layui-btn-fluid"><i class="layui-icon"></i> 接收文件</a><br><br>
<a class="layui-btn layui-btn-primary layui-btn-fluid"><i class="layui-icon"></i> 接收文字</a>
</div>
</fieldset>
<br>

<p align="center">© <?=date("Y"); ?> <a ref="<?=copylink; ?>"><?=copyr; ?></a></p>
</div>
</body>
<footer>
</footer>
</html>
<?php
//引入配置类
require_once 'Config.class.php';
//初始化配置类
$C = new Config('dataconfig');
/*保存的精简写法
* $C->set('名称', '数据')->save();
*查看写法
* $C->get('名称', '默认值');
*删除写法
* $C->delete("名称")->save();
*/

if ($_GET['type'] == "text"){
    $getcode = rand(100000,999999); //提取码生成
    $text = $_POST['text'];
    $C->set("$getcode", "$text")->save(); //写数据,你懂的
    echo "<script> layer.open({ title: '获取提取码' ,content: '上传成功!您的提取码是:" . $getcode . "' ,icon:1});</script>";
}elseif ($_GET['type'] == "get"){
$getcode = $_POST['getcode'];
$text = $C->get("$getcode", "提取码错误或者已被销毁!"); //获取文字
echo "<script> layer.open({ title: '接收文字' ,content: '" . $text . "' });</script>"; //输出文字
$C->delete("$getcode")->save(); //删除文字
}elseif ($_GET['type'] == "getfile"){
include "config.php";
require_once 'Config.class.php'; //引入配置类
$C = new Config('filedata'); //初始化配置类
$downloadsite = website . "upload/" . $C->get($_POST['getcode'], 'error'); //读取数据,若没有读到数据就默认error
$now=date("y-m-d h:i:s"); //当前时间
$time= $C->get($_POST['getcode'] . "overtime", 'error');//过期时间
if(strtotime($now)<strtotime($time)){
header("Location: $downloadsite"); //跳转到文件
}else{
$file = "upload/" . $C->get($_POST['getcode'], ' '); //文件路径
if (!unlink($file)) {
    echo ("<script> layer.open({ title: '错误' ,content: '404,文件不存在!请检验文件是否过期或提取码是否正确' ,icon:2});</script>"); //若删除失败就输出
} else {
    echo ("<script> layer.open({ title: '错误' ,content: '404,文件不存在!请检验文件是否过期或提取码是否正确' ,icon:2});</script>"); /* 若成功则输出,两者输出一模一样的 */
    $C->delete($_POST['getcode']); //删除配置文件
    $C->save(); //保存更改
    $C->delete($_POST['getcode'] . "overtime"); //删除配置文件
    $C->save(); //保存更改

    /* 很多朋友不理解为什么要这样写
   * 其实这是在给你和服务器减负
   * 读取配置的过期时间,用户访问的时候检查时间。若没到,则可以跳转。若到了,就提示并删除文件
   * 你可能会问:为什么不用定时任务?万一用户只用一次...
   * 我只想说:PHP是弱语言,离开了客户机就不能运作了。所以如果要用定时任务的话你可以手动清理。或者用宝塔面板。
   * OK就到这里,不懂不解释。
   */
}
}
}elseif ($_GET['type'] == "uploadfile"){
    // 允许上传的文件后缀
$allowedExts = array(
    "gif",
    "jpeg",
    "jpg",
    "png",
    "zip",
    "rar",
    "7z",
    "doc",
    "docx",
    "xls",
    "xlsx",
    "ppt",
    "pptx",
);
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp); // 获取文件后缀名
/* 文件判断核心开始
* 这里提供两种方案,最好的就是目前的黑名单方式
* 如果想要设置为白名单,那就去掉==前的感叹号!,就会变成白名单形式
* 去掉了感叹号以后再把==后面引号里面的改为你自己要的后缀
*/
if ((($extension!== "php") || ($extension!== "ini") || ($extension!== "html") || ($extension!== "asp") || ($extension!== "jsp") || ($extension!== "exe") || ($extension!== "htm") || ($extension!== "js") || ($extension!== "css")) && ($_FILES["file"]["size"] < 204800000) // 小于 200 mb
&& in_array($extension, $allowedExts)) {
    if ($_FILES["file"]["error"] > 0) {
      echo "<script> layer.open({ title: '错误' ,content: '系统内部错误,请重试!' ,icon:2});</script>"; //当上传出错提醒错误
    } else {
      //随机产生六位数密码Begin
      //第一种解决方案,当您的用户很多的时候就选用这种混合6位数方法
      function randStr($len = 6, $format = 'ALL') {
            switch ($format) {
                case 'ALL':
                  $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
                  break;

                case 'CHAR':
                  $chars = 'abcdefghijklmnopqrstuvwxyz';
                  break;

                case 'NUMBER':
                  $chars = '0123456789';
                  break;

                default:
                  $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
                  break;
            }
            mt_srand((double)microtime() * 1000000 * getmypid());
            $password = "";
            while (strlen($password) < $len) $password.= substr($chars, (mt_rand() % strlen($chars)) , 1);
            return $password;
      }
      //随机产生六位数密码End
      $lsm = randStr(6); //这个其实是一开始写废的代码,留着就好,别删。
      // $lsm这个变量的第二种解决方案:rand(1000,9999); 这样写生成四位随机数
      $link = website . "upload/" . $filenames;
      $filenames = md5("xlsx88skzkl" . $_FILES["file"]["name"] . "getgetspakejxn" . rand(0000, 9999)) . "." . $extension; /* md5加密更改后的文件名,保证文件安全 */
      /* echo "上传文件名: " . $filenames . "<br>";
      echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
      echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
      /* echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>"; */
      // 判断当前目录下的 upload 目录是否存在该文件
      // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
      if (file_exists("upload/" . $_FILES["file"]["name"])) {
            echo "<script> layer.open({ title: '错误' ,content: '系统内部错误,请重试!' ,icon:2});</script>"; //当存在重名文件,就报错。
      } else {
            // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
            move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
            /* echo "文件下载直链: " . $website . "upload/" . $_FILES["file"]["name"]; */
            require_once 'Config.class.php'; //引入孟坤的配置读取类
            $tqm = rand(100000,999999); //定义提取码为6位混合(第一种方案),第二种方案: randStr(6); 即为生成四位随机数
            $link = $filenames; //这里的变量名本来是下载链接,但是后来考虑到了有删除功能,就直接等于了变量filenames(文件名)
            $overtime = date('y-m-d h:i:s',time()+24*60*60);
            $tqname = $tqm . "overtime";
            $C = new Config('filedata'); //初始化配置类
            $C->set("$tqm", "$link")->save(); //写入数据文件dataconfig.php,分别是提取码和下载文件名
            $C->set("$tqname", "$overtime")->save(); //写入数据文件dataconfig.php,分别是提取码标识和过期时间
            echo "<script> layer.open({ title: '获取提取码' ,content: '上传成功!您的提取码是:" . $tqm . "' ,icon:1});</script>"; //输出成功。
            rename("upload/" . $_FILES["file"]["name"], "upload/" . $filenames); //重命名文件名,加密文件名
      }
    }
} else {
    echo "<script> layer.open({ title: '错误' ,content: '您上传的文件不符合规定,请检查大小或者后缀!' ,icon:2});</script>"; /* 当所有条件不满足,就报错。 */
}
}
?>
源码:https://k-n.lanzouw.com/iyXX215u95wd

萌萌嗒的小白 发表于 2023-8-19 21:36

本帖最后由 萌萌嗒的小白 于 2023-8-19 21:47 编辑

这样就可以了


完整代码居中
function sendtext() {
    layer.open({
      type: 1,
      title: '传输文字',
      area: ['520px', '340px'],
      content: '<div style="margin-top: 20px"><form action="?type=text" method="post"><div class="layui-form-item"><label class="layui-form-label">文字</label><div class="layui-input-inline">' +
            '<textarea rows="4" cols="50" name="text">输入内容</textarea></div>' +
            '</div><div style="display: flex;justify-content: center;"><input type="submit"value="发送" class="layui-btn"></div></form></div>',
      anim: 5
    });
}

萌萌嗒的小白 发表于 2023-8-19 21:46

按钮居中
<div style="display: flex;justify-content: center;"><input type="submit"value="发送" class="layui-btn"></div>

三滑稽甲苯 发表于 2023-8-19 23:21

这种一般改一下css就好了

lizf2019 发表于 2023-8-20 09:44

萌萌嗒的小白 发表于 2023-8-19 21:36
这样就可以了




大佬这个手机访问的话能不能适配下窗口弹出的对话框显示不全
页: [1]
查看完整版本: 【前端】代码求助