(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)的更多相关文章

  1. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  2. (转载)JavaWeb学习总结(五十)——文件上传和下载

    源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...

  3. 可拖拽和带预览图的jQuery文件上传插件ssi-uploader

    插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...

  4. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  5. JavaWeb学习总结,文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  6. OAF_文件系列1_实现OAF文件上传和下载MessageFileUpload/MessageDownload(案例)

    20150707 Created By BaoXinjian

  7. [转]一个文件上传的jquery插件

    http://www.jb51.net/article/51547.htm 这篇文章主要介绍了使用ajaxfileupload.js实现ajax上传文件php版,需要的朋友可以参考下     无论是P ...

  8. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  9. 文件上传~Uploadify上传控件~续(多文件上传)

    对于Uploadify文件上传之前已经讲过一次(文件上传~Uploadify上传控件),只不过没有涉及到多文件的上传,这回主要说一下多个文件的上传,首先,我们要清楚一个概念,多文件上传前端Upload ...

  10. struts2文件上传,文件类型 allowedTypes

    struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript ...

随机推荐

  1. Swift 中调试状态下打印日志

    首先我们应该知道Swift中真个程序的入口就是在AppDelegate.swift中.所以在打印日志在 AppDelegate.swift中是这样的 import UIKit @UIApplicati ...

  2. MySQL--基础SQL--DDL

    1.创建数据库 CREATE DATABASE dbname 例: CREATE DATABASE test 2.选择要操作的数据库 USE dbname 例: USE test 3.删除数据库 DR ...

  3. 洛谷 P4342 [IOI1998]Polygon

    题目传送门 解题思路: 一道环形dp,只不过有个地方要注意,因为有乘法,两个负数相乘是正数,所以最小的数是负数,乘起来可能比最大值大,所以要记录最小值(这道题是紫题的原因). AC代码: #inclu ...

  4. 29. docker swarm 创建 三个节点 swarm 的集群

    1.使用 vagrant 部署 三台 centos/7 的 环境 ###Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.req ...

  5. js中将json字符串转换成json对象

    在我们使用js请求后台控制器传回的结果result值的时候,经常会出现返回结果值为json字符串的情况,字符串无法在js中直接使用 返回样式栗子: 这是一个json字符串:result = " ...

  6. PAT Advanced 1029 Median (25) [two pointers]

    题目 Given an increasing sequence S of N integers, the median is the number at the middle position. Fo ...

  7. Python筛法求素数

    l=[2]m,n=input().split()m=int(m)n=int(n) for i in range(m,n): flag=True for j in l: if i%j==0:#如果当前值 ...

  8. LaTeX Windows配置

    1. 安装TeXstudio 用搜索引擎找合适的版本或者 在 https://sourceforge.net/projects/texstudio/ 下载 找合适的版本下载,点击下一步安装即可. Te ...

  9. 纯手撸web框架

    纯手撸web框架 一.Web应用的组成 接下来我们学习的目的是为了开发一个Web应用程序,而Web应用程序是基于B/S架构的,其中B指的是浏览器,负责向S端发送请求信息,而S端会根据接收到的请求信息返 ...

  10. 数据库my.ini配置

    数据库my.ini配置 通过配置文件统一配置的目的:统一管理 服务端(mysqld) .客户端(client) 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用 1 ...