thinkphp5实现文件上传

摘要:
phpnamespaceappindixcontroller;usethinkView;usethinkController;ClassPicuploadextendsController{publicfunctionindex(){$view=newView();return$view-˃fetch;}publicfunctionpicupload(){//如果{echo$_FILES[“file”][“error”];}else{//如果{//找到文件存储位置,则控制上载文件的类型和大小。请注意,前面没有使用tp5框架的相对路径。///此处的文件名是拼接的。路径在前面,文件名从日期开始。//我在静态文件下创建一个新文件来存储文件。注意,您可以创建一个文件来存储传输的文件$filename=“static/file/”。日期$_文件[“file”][“name”]//如果{echo}文件已经存在,则判断文件是否存在!

原理:通过form表单的enctype = "multipart / form-data"属性将文件临时放在htdocs文件夹的tmp目录下,再通过后台的程序将文件保存在自己设定的新的文件夹中。
前端页面


 

前端页面

thinkphp5实现文件上传第1张


前端代码
<!--上传文件-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传头像</title>
</head>
<body>
<form action="picupload" method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
</body>
</html>
后台代码

<?php

namespace appindexcontroller;
use thinkView;
use thinkController;

class Picupload extends Controller
{
public function index()
{
$view = new View();
return $view->fetch("picupload");
}

public function picupload()
{
//判断文件上传是否出错
if($_FILES["file"]["error"])
{
echo $_FILES["file"]["erroe"];
}
else
{
//控制上传的文件类型,大小
if($_FILES["file"]["type"]=="image/jpeg"||$_FILES["file"]["type"]=="image/jpg" && $_FILES["file"]["type"]=="image/png"&&$_FILES["file"]["size"]<1024000)
{
//找到文件存放位置,注意tp5框架的相对路径前面不用/
//这里的filename进行了拼接,前面是路径,后面从date开始是文件名
//我在static文件下新建了一个file文件用来存放文件,要注意自己建一个文件才能存放传过来的文件
$filename = "static/file/".date("YmdHis").$_FILES["file"]["name"];
//判断文件是否存在
if (file_exists($filename))
{
echo "该文件已存在!";
}
else
{
//保存文件
//move_uploaded_file是php自带的函数,前面是旧的路径,后面是新的路径
move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
}
}
else
{
echo "文件类型不正确!";
}
}
}

}
点击上传就能将文件放到指定的文件夹了

文件的命名格式按照之前设定好的规则进行命名

 thinkphp5实现文件上传第2张

thinkphp5实现文件上传第3张

【 作者:Xi4or0uji       来源:CSDN     原文:https://blog.csdn.net/xiaorouji/article/details/79346894 

 

免责声明:文章转载自《thinkphp5实现文件上传》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# TCP通信C# WinForm下DataGridView绘制背景图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Thinkphp5 sql注入分析

Thinkphp5 sql注入 影响版本: 5.0.13<=ThinkPHP<=5.0.15 、 5.1.0<=ThinkPHP<=5.1.5 。 0x01漏洞触发点: 导致这个漏洞的函数为Builder类的parseData函数 这个函数的前半段主要作用为获取数据表的字段,然后进入一个循环,我们重点看第二个elseif处 这里...

thinkphp5 连接SQLserver

1、PHP 7.0.x 添加SQLserver扩展 (1)7.0.x的扩展下载地址 Microsoft Drivers for PHP for SQL Server https://www.microsoft.com/en-us/download/details.aspx?id=20098 下载下来的 SQLSRV40.exe 右键解压得出下面的dll文件...

thinkphp5学习总结5---超全局变量,魔术方法和魔术变量大全

PHP中的这三种变量 PHP在设计的时候已经预定义了9个超级全局变量、8个魔术变量和13魔术函数,这些变量和函数可以在脚本的任何地方不用声明就可以使用。 在PHP开发会频繁的使用这些变量和函数,这些变量和函数可以方便的帮我们解决很多问题。下面详细的讲解下PHP中的超级全局变量、魔术变量和魔术函数。 1.超全局变量(9个) $GLOBALS  储存全局作用域...

ThinkPHP5.0源码学习之框架启动流程

ThinkPHP5框架的启动流程图如下: ThinkPHP5的启动流程按照文件分为三步: 1、请求入口(public/index.php) 2、框架启动(thinkphp/start.php) 3、应用启动(thinkphp/library/App.php)   ThinkPHP框架默认是单入口框架,默认的入口文件为public/index.php,所...

TP5整合 WorkerMan 以及 GatewayWorker

TP5整合GatewayWorker Windows版安装 a)使用composer create-project topthink/think testTG,来安装thinkphp5. b)进入thinkphp5的目录,此处为testTG,使用composer require workerman/gateway-worker-for-win 安装Wi...

ThinkPHP5——URL参数带中文,报"模块不存在"

我在URl的传参时参数有中文,结果报"模块不存在",一般情况是没有这种错误的,但今天让我遇到就顺手解决 ThinkPHP5.0支持在规则路由中为变量用正则的方式指定变量规则,弥补了动态变量无法限制具体的类型问题,并且支持全局规则设置 报错的原因很简单,application oute.php里设置了全局变量规则,它是下载就有的 <?php retu...