96)PHP,文件上传(2)
(1)那么既然看到文件即使上传成功,但是只是在脚本周期内有效,脚本只要结束(脚本结束其实很快的),文件就会自动消失,那么怎么才能永久存储文件呢:
函数:
Move_uploaded_file(上传临时地址,目标地址);
完成:
需要使用$_FILES数组,存储了上传的临时文件的信息,包括临时地址!
为啥说$_FILE中存有文件的路径呢,可以看一下,我们$_FILE输出的信息
每个上传的临时文件,
有5个信息,
name:原始文件名,
type:类型,
tmp_name,临时地址,
error:是否有错误及错误类型,
size:大小。
(2)那么怎么判断文件类型:(为啥判断文件类型,因为,假如你要用户传图片,人家偏偏不传图片,传的是音频文件,那么这样不符合要求的,我们就直接给他扼杀在摇篮)
通常判断类型有两种方式:
()就是通过文件的后缀名,比如:~~~.mp3 ~~.png等等
()通过MIME方式,(我也不是很懂)(多用途internet邮件扩展):网络上传输资源时,使用的资源类型表示方法。
Text/html; image/png
那么截取后缀名方式(必须学会)
()strrchr(文件名变量,‘.’) 截取文件名中最后出现 . 的后面的字符串
()strchr(文件名变量,‘.’)截取文件中名中第一次出现 . 的后面的字符串
获得文件路径的函数(详情看手册):
()pathinfo()
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php'); echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?> 结果显示:
以上例程会输出: /www/htdocs/inc
lib.inc.php
php
lib.inc ()$_FILE的五个参数同样能得到文件的类型($_FILE['type'])和名字($_FILE['name'])。
一段代码:
$a='x.y.z.png';
echo strrchr($a,'.');
echo "<pre>";
echo "<pre>";
echo "<pre>";
echo strchr($a,'.');
结果展示:
(3)怎么在脚本周期内,将那个临时文件保留下来,用 move_uploaded_file(源文件名,新文件地址+名字)
index.php
<?php var_dump($_POST);
echo '<pre>';
echo "<pre>"; echo '<pre>';
echo "<pre>";
echo '<pre>';
echo "<pre>"; var_dump($_FILES);
move_uploaded_file($_FILES['picture']['tmp_name'],'./new_name.png');
这个是将那个临时文件存在我的当前文件夹下,以new_name.png命名
开始我的当前文件夹目录情况:
然后我执行后
说明这个函数执行成功了
数据库中存的是图片的地址,所以我们可以直接将图片的地址读出来,然后直接赋给img的src就可以了。
96)PHP,文件上传(2)的更多相关文章
- java web学习总结(二十四) -------------------Servlet文件上传和下载的实现
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- (转载)JavaWeb学习总结(五十)——文件上传和下载
源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...
- 可拖拽和带预览图的jQuery文件上传插件ssi-uploader
插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...
- SpringMVC 文件上传&拦截器&异常处理
文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...
- JavaWeb学习总结,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- OAF_文件系列1_实现OAF文件上传和下载MessageFileUpload/MessageDownload(案例)
20150707 Created By BaoXinjian
- [转]一个文件上传的jquery插件
http://www.jb51.net/article/51547.htm 这篇文章主要介绍了使用ajaxfileupload.js实现ajax上传文件php版,需要的朋友可以参考下 无论是P ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- 文件上传~Uploadify上传控件~续(多文件上传)
对于Uploadify文件上传之前已经讲过一次(文件上传~Uploadify上传控件),只不过没有涉及到多文件的上传,这回主要说一下多个文件的上传,首先,我们要清楚一个概念,多文件上传前端Upload ...
- struts2文件上传,文件类型 allowedTypes
struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript ...
随机推荐
- PyGame快速入门
pygame 快速入门 目标 项目准备 使用 pygame 创建图形窗口 理解 图像 并实现图像绘制 理解 游戏循环 和 游戏时钟 理解 精灵 和 精灵组 项目准备 新建 飞机大战 项目 新建一个 h ...
- ES6 之 数值扩展
1.ES5 // Number类型重写了valueOf() toLocaleString() toString('进制')方法 let a = 10 console.log(a.valueOf()); ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:函数调用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 编写shell脚本,使用 nohup 让springboot 项目在后台持续运行
1.将springboot项目打成jar放在linux的某个目录下. 2.新建一个nohup.log文件. 3.使用vi命令新建一个start.sh文件并写下以下内容: #!/bin/sh nohup ...
- 2019 Python工程师平均薪资22K,又涨了11.9%!
转行的同学最关心的就是Python的薪资情况了.今天我们就来具体看一下Python现在的薪资情况. 这是一张网友统计的Python工程师工资情况图表.详细说明了现在Python工程师在各个城市的薪资情 ...
- 201512-1 数位之和 Java
思路: mod 10获取最低位,除以10去掉最低位 import java.util.Scanner; public class Main { public static void main(Stri ...
- windows 安装Bitcoin Core使用
1.官网下载https://bitcoin.org/en/download 选择Windows 其他系统就选择对应的就好 2.双击安装完过后,进入bin目录,打开bitcoin-qt.exe运行,提 ...
- Android通过包名打开第三方应用
import android.content.ComponentName; import android.content.Context; import android.content.Intent; ...
- 连词词组|relax|brings about a rise in|Chance are (high)that|Have no clue|Be passionate about|Tedious|overwhelmed by piles of
efficient有效率的 effective有效果的 Make sb. Do Stuff没有复数 首先的三种表述:First off=To begin with=For starters 其次:Ad ...
- vector内部的实现1
写vector的内部方法 #include<vector> using std::vector; //写一个动态内存 class CA{ int a; public: CA(int i){ ...