热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php+layui文件上传以及拖拽上传

HTML:将文件拖拽到此区域

HTML:
  



将文件拖拽到此区域





































文件名称类型操作备注




JS:

XMLhttpReuest.js

function ajaxFunction()

{

var xmlHttp;

try

{

// Firefox, Opera 8.0+, Safari

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

// Internet Explorer

try

{

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

}

catch (e)

{

try

{

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

}

catch (e)

{

alert("您的浏览器不支持AJAX!");

return false;

}

}

}

return xmlHttp;

}

{?*拖拽上传*?}

php:

ajax.files.upload.php

header("Content-Type:text/html;charset=UTF-8");$CODE = $_GET['upfilecode'];

$PATH = $_GET['path'];
$a = new UPFILE($CODE, $PATH, $_FILES['file'], $pl);
class UPFILE

{

public $pl = '';

public $file = '';
public function __construct($code, $path, $file, $pl)

{

if ($code == '')

$this->ExtFrm(1, "缺少上传编码");

if ($path == '')

$this->ExtFrm(2, "缺少上传路径");

if (!$file)

$this->ExtFrm(3, "找不到上传文件");

if ($file['size'] > 1024 * 1024 * 50) {

$this->ExtFrm(3, "上传失败,文件大小超过限制(文件大小:50MB)");

}

$size=round($file['size']/1024/1024, 2);

$this->pl = $pl;

$this->file = $file;

$this->type = $path;
$filePath = $this->createFile($path);

$fileOld = $this->verifyFile();

$this->fileupload($code, $filePath, $fileOld,$size);

}
/**

* Method:createFile

* Desc:创建文件路径

*/

public function createFile($path)

{

$Ym = date('Ym');

$filepath = $Ym . ($path != "" ? "/" : "") . $path;

$fullpath = '../upfiles/' . $filepath;

if (!is_dir($fullpath)) {

$res = mkdir($fullpath, 0777, true);

}

return array($filepath . "/", $fullpath . "/");

}
/**

* Method:verifyFile

* Desc:验证文件格式

*/

public function verifyFile()

{

$pinfo = pathinfo($this->file["name"]);

$extension = strtolower($pinfo['extension']);

switch ($this->type) {

case 'message_img': //消息推送 - 富文本 图片上传

$file_format = array("jpg", "jpeg", "gif", "png");

if (!in_array($extension, $file_format)) {

$this->ExtFrm(4, "上传失败,文件格式不正确(支持:jpg,gif,png)");

}

break;

default:

$file_format = array("jpg", "jpeg", "gif", "png", "rar", "zip", "doc", "docx", "xls", "xlsx", "pdf", "txt", "ppt", "pptx", "tif",'mp4');

if (!in_array($extension, $file_format)) {

$this->ExtFrm(4, "上传失败,文件格式不正确(支持:jpg,gif,png,rar,zip,doc,docx,xls,xlsx,pdf,txt,ppt,pptx,tif,mp4)");

}

break;

}

return array("filename" => $pinfo['filename'], "extension" => $extension);

}
/**

* Method:fileupload

* Desc:上传文件

*/

public function fileupload($code, $filepath, $fileold,$size)

{

$old_name = $fileold['filename'];

$new_name = time() . rand(0, 500000) . dechex(rand(0, 10000));

move_uploaded_file($this->file['tmp_name'], $filepath[1] . $new_name . "." . $fileold['extension']);
if ($this->type != 'message_img') {

$sql = "insert into system_attach (`BM`,`YFJMC`,`XFJMC`,`WJLJ`,`WJLX`,`CJSJ`,`CJRID`,`CJRMC`,`SIZE`) values (:BM,:YFJMC,:XFJMC,:WJLJ,:WJLX,:CJSJ,:CJRID,:CJRMC,:SIZE)";

$this->pl->query($qry, $sql, array(

":BM" => $code,

":YFJMC" => $old_name . ".",

":XFJMC" => $new_name . "." . $fileold['extension'],

":WJLJ" => $filepath[0],

":WJLX" => $fileold['extension'],

":CJSJ" => date("Y-m-d H:i:s"),

":CJRID" => $_SESSION['UID'],

":CJRMC" => $_SESSION['NAME'],

":SIZE" => $size,

));

$id = $this->pl->insert_id();

}

$this->ExtFrm(0, "上传成功", $id, $filepath[1], $new_name, $old_name, $fileold['extension']);

}
/**

* Method:extFrm

* Desc:结果返回

*/

public function extFrm($code, $msg, $id = 0, $filepath = "", $new_name = '', $old_name = '', $file_ext = "")

{

if ($code > 0) {

$ExtFrm = array("code" => $code, "msg" => $msg);

} else if ($this->type == 'message_img') {

$title = $new_name . "." . $file_ext;

$ExtFrm = array("code" => $code, "msg" => $msg, "data" => array("src" => $filepath . $title, "title" => $title));

} else {

$ExtFrm = array("code" => $code, "msg" => $msg, "id" => $id, "path" => $filepath, "new_name" => $new_name, "old_name" => $old_name, "file_ext" => $file_ext);

}

exit(json_encode($ExtFrm));

}

}
?>

php + layui 文件上传 以及 拖拽上传的相关教程结束。



推荐阅读
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 5G至4G空闲态移动TAU流程解析
    本文详细解析了用户从5G网络移动到4G网络时,在空闲态下触发的跟踪区更新(TAU)流程。通过N26接口实现无缝迁移,确保用户体验不受影响。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 解决FCKeditor应用主题后上传问题及优化配置
    本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 本文详细探讨了VxWorks操作系统中双向链表和环形缓冲区的实现原理及使用方法,通过具体示例代码加深理解。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • 本文详细介绍了Ionic框架的使用方法及其与Angular的集成。Ionic框架是一个强大的前端开发工具,适用于构建跨平台的移动应用程序。文章将探讨如何引入必要的CSS和JavaScript文件,并解释bundle.js中包含的核心功能,如路由等。 ... [详细]
author-avatar
大飞5678
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有