tp5上传文件并获取文件路径_tp5上传压缩包到相应文件并自动解压到相应文件下...

这是一个关于ThinkPHP5(TP5)的控制器实现文件上传功能的博客。控制器处理文件上传,删除旧文件,解压上传的ZIP文件到指定目录,并检查解压后的文件是否存在。内容涉及到文件操作、目录删除、ZipArchive类的使用以及文件移动。
摘要由CSDN通过智能技术生成

namespace app\admin\controller\upload;

use app\common\controller\Backend;

use think\db;

use think\Request;

use ZipArchive;

/**

* 上传功能

*

* @icon fa fa-user

*/

class Upload extends Backend{

protected $relationSearch = true;

public $file_path1 = "uploads/publishh.zip";

public $file_path2 = "E:\PHPTutorial\WWW\publishh";

public $file_path3 = "E:\PHPTutorial\WWW";

/**

* User模型对象

*/

protected $model = null;

public function _initialize()

{

parent::_initialize();

$this->model = model('Player');

}

// 文件上传表单

public function index(){

if(file_exists($this->file_path1)){

unlink($this->file_path1);

return $this->fetch();

}

else {

return $this->fetch();

}

}

//删除文件夹以及文件夹里面所有的文件

public function deldir($dir) {

//先删除目录下的文件:

$dh=opendir($dir);

while ($file=readdir($dh)) {

if($file!="." && $file!="..") {

$fullpath=$dir."/".$file;

if(!is_dir($fullpath)) {

unlink($fullpath);

} else {

$this->deldir($fullpath);

}

}

}

closedir($dh);

//删除当前文件夹:

if(@rmdir($dir)) {

return true;

} else {

return false;

}

}

//解压一个压缩包

/**

* 解压zip文件到指定目录

* $filepath: 文件路径

* $extractTo: 解压路径

*/

public function dr_unZip($filepath,$extractTo) {

$zip = new ZipArchive;

$res = $zip->open($filepath);

if ($res === TRUE) {

//解压缩到$extractTo指定的文件夹

$zip->extractTo($extractTo);

$zip->close();

echo "success改正";

} else {

echo 'failed, code:' . $res;

}

}

//判断是否有子文件

public function hasFile($dirName) {

if(file_exists($dirName) && $handle = opendir($dirName)) {

while(false !== ($item = readdir($handle))) {

if($item!= "." && $item != ".."){

echo $item;

}

}

}

}

// 上传文件方法

public function upload(){

if(file_exists($this->file_path1)){ //包含需要先删除该wen

$unlink = unlink($this->file_path1);

if($unlink=true){

$file = request()->file('files');

if (empty($file)) {

$this->error('请选择上传文件');

}

// 移动到框架应用根目录/public/uploads/ 目录下

$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads','');

if ($info) {

$del = $this->deldir($this->file_path2);

if($del=true){

$row = $this->dr_unZip($this->file_path1,$this->file_path3);

if($row=true){

$this->success('文件上传成功');

echo $info->getFilename();

}

}

else {

echo "删除a目录失败";

}

}

else {

$this->error($file->getError());

}

}

else {

echo "删除失败";

}

}

else { //不包含就不用删除了

$file = request()->file('files');

if (empty($file)) {

$this->error('请选择上传文件');

}

// 移动到框架应用根目录/public/uploads/ 目录下

$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads','');

if ($info) {

$del = $this->deldir($this->file_path2);

if($del=true){

$row = $this->dr_unZip($this->file_path1,$this->file_path3);

if($row=true){

$this->success('文件上传成功');

echo $info->getFilename();

}

}

else {

echo "删除a目录失败";

}

}

else {

$this->error($file->getError());

}

}

}

}

zend framework将zip格式的压缩文件导入并解压到指定文件

html代码

批量导入学生照 ... 
 

Linux文件压缩/打包/解压

在Linux日常维护中,经常需要备份同步一些比较重要的文件,而在传输过程中如果文件比较大往往会非常慢,而且还会非常占用空间,这时候就需要我们使用压缩工具对大文件进行压缩打包,下面我们来介绍一下常用的压 ...

PHP上传压缩包并自解压方法

1.PHP上传压缩包并解压的大概流程: 普通上传功能->上传到服务器->加载系统组件->找到上传的文件并执行解压命令->成功解压到目录 2.php执行系统命令的几类函数: (1 ...

PHP自动解压上传的rar文件

PHP自动解压上传的rar文件   浏览:383 发布日期:2015/07/20 分类:功能实现 关键字: php函数 php扩展 大家都知道php有个zip类可直接操作zip压缩文件,可是用户有时候 ...

C# 上传RAR文件 解压 获取解压后的文件名称

此方法适用于C盘windows文件夹中有WinRAR.exe文件 if (fileExt.ToUpper() == ".RAR") { string zpath = Server. ...

Java解压上传zip或rar文件,并解压遍历文件中的html的路径

1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSe ...

本地上传文件至服务器的技巧(linux文件压缩及解压文件)

linux(ubuntu)文件解压及压缩文件 ubuntu支持文件的解压及压缩功能, 如果ubuntu上面没有安装过unzip工具的话,可以通过下面命令安装: sudo apt-get install ...

spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置

spring mvc 图片上传,跨域解决 按天生成文件夹 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ ...

Java压缩包解压到指定文件

在获得一个以Zip格式压缩的文件之后,需要将其进行解压缩,还原成压缩前的文件.若是使用Java自带的压缩工具包来实现解压缩文件到指定文件夹的功能,因为jdk提供的zip只能按UTF-8格式处理,而Wi ...

随机推荐

再次用CodeIgniter实现简易blog

天变冷了,人也变得懒了不少,由于工作的需要,最近一直在学习CodeIgniter(CI)框架的使用,没有系统的从PHP基本语法学起,在网上靠百度谷歌,东拼西凑的实现了一些简单的功能.所以,老PHPer ...

WAMP集成环境的安装

暑假已经正式开始,我的学习计划也开始有了初步的进展,今天学习的主要内容是PHP的基础知识,以及在电脑上面安装了集成的WAMP(Windows+Apache+MySQL+PHP). PHP的基础知识: ...

Css Study - Top Menu in Header 横向间隔的菜单

.shortcut ul li { display: inline; } CSS

HDU 1869 六度分离

六度分离 http://acm.hdu.edu.cn/showproblem.php?pid=1869 Problem Description 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一 ...

Android 高级UI设计笔记09:Android如何实现无限滚动列表

ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验 ...

bzoj3405:[Usaco2009 Open]Grazing2 移动牛棚

思路:首先因为要让距离尽量大,所以奶牛1一定在1号牛棚,奶牛n一定在s号牛棚,然后考虑dp. 因为总距离为s-1,然后要使长度为d的段数尽量多,那么剩下的一定就是d+1的段数,也就是s-(n-1)*d ...

如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?

如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面? 什么是SPICE? SPICE (Simple Protocol for Independent Computi ...

HTTP协议5之代理--转

代理服务器 Web代理(proxy)服务器是网络的中间实体. 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色. HTTP的代理服务器即是Web服务器又是Web客户端. Fiddler就是 ...

Java Socket输入流如何检测到EOF

对于InputStream的 read(b, off, len) 方法 public int read(byte[] b, int off, int len) throws IOException,J ...

每天学点SpringCloud(四):Feign的使用及自定义配置

Feign:SpringCloud的官网对它的定义是这样的: 是一个声明式的Web服务客户端.它支持Feign本身的注解.JAX-RS注解以及SpringMVC的注解.Spring Cloud集成Ri ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值