22. PHP文件上传

22.1 资源文件



将这三个东西拷贝项目的根目录。

拷贝完毕后,打开upload.html:



现在,我们在项目的根目录去编写一个upload.php。



PHP给我们提供了很多关于文件上传的预定义变量,比如,上传的文件名称,文件大小,文件的类型等。

以下的up_file 就是form表单中文件框的name

22.2 如何修改文件上传的大小限制

打开xampp的安装目录,在目录中搜索php.ini的配置文件。



打开php.ini , 搜索upload_max:



再搜索post_max:



接着,重启服务器。

22.3 更改文件大小的名称

	function getSize($fileSize){
if($fileSize < 1024){
$fileSize = $fileSize . "B";
}else if($fileSize < 1024 * 1024){
$fileSize = round($fileSize / 1024,2) . "KB";
}else if($fileSize < 1024 * 1024 * 1024){
$fileSize = round($fileSize / 1024 / 1024,2) . "MB";
}else if($fileSize < 1024 * 1024 * 1024 * 1024){
$fileSize = round($fileSize / 1024 / 1024 / 1024 , 2) . "GB";
} return $fileSize;
}

22.4 文件上传

在PHP中,文件上传的时候会默认上传到一个临时目录,上传完毕后,如果没有及时把上传的文件从临时目录拷贝到上传的文件夹,临时文件就会被删除。

所以,当文件上传成功以后,我们一定要及时地把临时拷贝到上传目录。

	$temp = $_FILES["up_file"]["tmp_name"];
move_uploaded_file($temp,"upload/" . time() . "_" . $_FILES["up_file"]["name"]); echo "上传成功!";

同时,为了解决同名文件的覆盖问题,我们最好给上传的文件名改一下名字,在文件名的前面添加一个时间戳即可。

如果上传的文件是一个图片,那么,在上传成功的页面中,把上传好的图片显示在页面上,让用户知道自己上传的是什么图片。

$des = "upload/" . time() . "_" .  $_FILES["up_file"]["name"];
$temp = $_FILES["up_file"]["tmp_name"];
move_uploaded_file($temp,$des); echo "上传成功!<br>";
//先判断是不是图片?
if(strstr($_FILES["up_file"]["type"], "image")){
//如果是图片的话,就把上传好的图片显示在页面上
echo "<image src='".$des."' width='360px' />";
}

源码获取:https://www.jianshu.com/p/4977bd0073d5

最新文章

  1. maven 本地仓库和远程仓库
  2. 如何通过命令行创建和设置一个MySQL用户
  3. Hadoop原理介绍
  4. Ajax前台调用后台方法、AJAX Pro2(回调函数)
  5. C++中的迭代器
  6. ZOJ 2315
  7. php 获取指定日期所在月份的最后一天
  8. sybase下convert函数第三个参数(时间格式)
  9. linux局域网不能相互访问
  10. [ios2]tableView去除空行的singleLine
  11. jquery中的事件与应用
  12. html&lt;!DOCTYPE&gt;声明标签
  13. java中List对象的操作方法
  14. MySQL配置参数说明
  15. Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎
  16. Python 生成requirement 使用requirements.txt安装类库
  17. jQuery搜索框自动补全功能插件实现-autocomplete.js
  18. Python3基础 函数 无参数无返回值 调用会输出hello world的函数
  19. phalApi框架打印SQL语句
  20. python学习笔记之—— calendar(日历)模块

热门文章

  1. 网页一键加入QQ群
  2. 《Inside C#》笔记(十三) 多线程 下
  3. CSS3创建圆圈进度条
  4. 欲善其功,必先利其器--Nodejs调试技术总结
  5. 系统运维|IIS的日志设置
  6. 3.7Python数据处理篇之Numpy系列(七)---Numpy的统计函数
  7. Python3编写网络爬虫11-数据存储方式四-关系型数据库存储
  8. Appium1.9.1 之 Desired Capabilities 释疑
  9. linux位数查看
  10. UVA548-Tree(二叉树数组表示)