首页 > 其他分享 >tp5-实现资料下载&后台文件上传DOX/PDF/DOCX

tp5-实现资料下载&后台文件上传DOX/PDF/DOCX

时间:2022-09-19 17:46:38浏览次数:68  
标签:DOCX name arr tp5 value DOX file querySelector document

后台上传:

 后台代码:

   <dl>
        <label class="item-label" for="my-file-input">文件: </label>
        <a href="{$info.file_url}">{$info.file_name}</a>
        <input type="hidden" name="file_name" value="{$info.file_name}">
        <input type="hidden" name="file_url" value="{$info.file_url}">
        <input type="hidden" name="file_size" value="{$info.file_size}">
        <input type="file" id="my-file-input">
        
    </dl>

 

前台处理:

     <script>
        document.querySelector('#my-file-input').addEventListener('change', function (event) {
            var file = event.target.files[0];
            console.log(file);

            document.querySelector('[name="file_name"]').value = file.name;
            document.querySelector('[name="file_size"]').value = file.size;

            if (!document.querySelector("#title").value) {
                // '688566 xxx 2020-06-10  xxx.pdf'
                var arr = file.name.split(/[ .]+/).reverse();
                var date = arr[2];
                if (/\d{4}-\d{2}-\d{2}/.test(date)) {
                    document.querySelector("#title").value = arr[1];
                    document.querySelector("#publish_date").value = arr[2];
                }
            }

            var formdata = new FormData();
            formdata.append('file', file);
            fetch('/Admin/File/upload', {
                method: 'POST',
                body: formdata,
            }).then(function (r) {
                return r.json();
            }).then(function (j) {
                console.log(j);
                document.querySelector('[name="file_url"]').value = j.path;
            }).catch(function (error) {
                console.log(error);
                alert(error);
            })
        });
    </script>

数据表:

CREATE TABLE `o_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `file_name` text,
  `file_url` text,
  `file_size` int(11) DEFAULT NULL,
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='文件传输';

页面效果:

 

 

 点击按钮后出现效果:


 出现以上效果 必须引入 以下线上链接:

    <script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/popper.js/2.7.0/umd/popper.min.js"></script>
    <script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/tippy.js/6.2.7/tippy.umd.min.js"></script>

    <script>
        tippy('[data-tippy-content]', {});
    </script>

 

标签:DOCX,name,arr,tp5,value,DOX,file,querySelector,document
From: https://www.cnblogs.com/gaoyusui/p/16708438.html

相关文章

  • 打开WordPress网站时,出现Http500错误怎么办?
    在用PHP+IIS+WordPress搭建博客系统时,我们最不想看到的就是报错,尤其是http500的错误,有时真是一头雾水,摸不到头脑。有时升级主题或插件,也会莫名其妙的报这个错误,对于没有编......
  • TP5框架 之连接其他数据库配置
    一、代码/***@throws\think\Exception*/protectedfunctiongetDb(){if(!$this->my_db){$this->my_db=Db::connect(config('db2'));}}co......
  • PHP别名下载文件(TP5框架)
    publicfunctionindex(){$id=(int)input('id');if(empty($id)||!is_numeric($id)){$this->error("参数错误");}......
  • java下载word文档docx
    原文链接:https://blog.csdn.net/m0_51496483/article/details/122124567普通的下载功能,不过依然有一个值得关注的重要点……请看到最后!***HTML***按钮就不上了,你开心设计......
  • python-docx操作word
    python-docx学习资料比较不错的,随后附上 用于修改表格边框的函数及相关网站OfficeOpenXML(OOXML)-WordProcessing-TableBordersfromdocx.oxmlimportOxmlE......
  • tp5模型的定义
    1<?php2namespaceapp\index\model;34usethink\Model;56classUserextendsModel7{8}先定义一个模型类在database把表的前缀改了namespaceapp\ind......