`
sjkgxf7191
  • 浏览: 260110 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP 学习小结(三)—— PHP 上传原理及应用

阅读更多

FORM标签enctype属性
表单中enctype="multipart/form-data "的意思,是设置表单的MIME 编码。默认情况,
这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;
只有使用了multipart/form-data ,才能完整的传递文件数据

<form enctype="multipart/form-data" method="post" name="upform">
<input name="upfile" type="file">

 

$_FILES 系统函数

$_FILES['myFile']['name ']   客户端文件的原名称 。
$_FILES['myFile']['type ']   文件的 MIME 类型 ,例如"image/gif"。
//    image/jpg
//    image/jpeg
//    image/png
//    image/pjpeg
//    image/gif
//    image/bmp
//    image/x-png
//    application/x-zip-compressed
$_FILES['myFile']['size ']   已上传文件的大小 ,单位为字节 。
$_FILES['myFile']['tmp_name ']   储存的临时文件名,一般是系统默认。
$_FILES['myFile']['error ']   该文件上传相关的错误代码 。
//    0; 文件上传成功。
//    1; 超过了文件大小php.ini中。
//    2; 超过了文件大小 MAX_FILE_SIZE 选项指定的值。
//    3; 文件只有部分被上传。
//    4; 没有文件被上传。
//    5; 上传文件大小为0。
 

move_uploaded_file 函数

上传后移动 文件到目标位置 的函数
move_uploaded_file(临时文件,目标位置和文件名);

is_uploaded_file 函数

判断上传MIME类型的文件函数
move_uploaded_file(MIME);

 

示例代码:

<?php
// 判断文件是否上传
if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
    $upfile = $_FILES["upfile"];
    $name = $upfile["name"];
    $type = $upfile["type"];
    $size = $upfile["size"];
    $tmp_name = $upfile["tmp_name"];
    $error = $upfile["error"];
   
    // 判断文件类型,图片格式的才允许上传
    switch ($type) {
        case 'image/pjpeg': $ok = 1;
            break;
        case 'image/jpeg': $ok = 1;
            break;
        case 'image/gif': $ok = 1;
            break;
        case 'image/png': $ok = 1;
            break;
    }
    
    if ($ok && $error == '0') {
        // 移动文件到指定目录
        move_uploaded_file($tmp_name, 'up/'.$name);
        echo "上传成功";
    }
}
?>
<form action="" enctype="multipart/form-data" method="post" name="up">
    上传文件:
    <input name="upfile" type="file">
    <input type="submit" value="上传"><br>
</form>
1
0
分享到:
评论

相关推荐

    PHPWeb开发技术指南——pdf格式

    1.7 小结 22 第2章 高级语法 23 2.1 PHP语法 23 2.2 定义常量 24 2.3 数组函数 25 2.4 PHP和OOP 31 2.4.1 类:PHP 3.0和PHP 4.0的对比 35 2.4.2 执行类 36 2.4.3 读取对象 37 2.4.4 构造函数 38 2.4.5 继承 38 2.4.6...

    PHP缓存与静态化——PHP缓存与静态化

    **22.4 小结** PHP缓存和静态化是优化Web应用性能的关键手段。通过缓存,可以减少数据库查询,减轻服务器负担;通过静态化,可以快速响应用户请求,提升用户体验。尤其对于大型网站,结合使用这两种技术,可以在...

    Web环境搭建:Linux+Nginx+PHP+Mysql+Redis

    #### 五、小结 通过以上步骤,您可以轻松地搭建一个基于 **Ubuntu + PHP + Nginx + MySQL + Redis** 的商城系统环境。这套技术栈不仅能满足日常开发需求,还具有较好的扩展性和稳定性。随着业务的发展和技术的进步...

    从零开始学PHP-PHP语言

    #### 小结 通过本章的学习,我们了解了PHP的基本语法结构,包括分隔符、注释、变量等核心概念。这些基础知识是后续学习PHP编程的基础,熟练掌握它们有助于开发者编写出高效、可维护的PHP应用程序。接下来,我们将...

    php+mysql笔记

    - **课程小结**:从第282讲到第284讲,对整个系列进行了总结,强调了PHP与MySQL结合的重要性,以及通过PHP程序操作MySQL数据库的基本流程。 通过以上内容的学习,可以系统地掌握PHP与MySQL的基础知识,了解如何利用...

    PHP的基本应用-MVC

    #### 小结 通过这个简单的在线人数统计实例,我们不仅学习了如何使用PHP获取客户端IP地址、保存用户在线状态,而且还了解了如何统计在线人数。此外,通过使用MVC架构模式,我们可以更清晰地组织代码逻辑,使得程序...

    PHP Cookbook, 3rd Edition.pdf

    #### 小结 以上仅是《PHP Cookbook》第三版中部分关于字符串处理的知识点概述。本书还覆盖了其他如数组处理、文件系统操作、数据库交互等多方面的内容。对于希望提高PHP编程技能的开发者来说,《PHP Cookbook》第三...

    PHP调试--XDebug

    #### 四、小结 XDebug作为一款优秀的PHP调试工具,其丰富的功能和简便的配置流程使其成为PHP开发者的首选。无论是初学者还是资深开发者,都能从中受益匪浅。通过本文的学习,相信您已经掌握了XDebug的基本安装、...

    PHP编程中字符串处理的5个技巧小结

    //需要察看是否支持此类文字编码 ———————输出结果—————————————- H鰉e ——————————————————————— 1.使用printf()和sprintf()创建格式化的输出 printf()直接输出到输出...

    需要注意的几个PHP漏洞小结

    本文将围绕“需要注意的几个PHP漏洞小结”这一主题,详细解析几个常见的PHP安全漏洞,并给出相应的防范措施。 #### 一、`register_globals`配置项的安全隐患 `register_globals`是PHP中的一个配置项,它控制着是否...

    Mastering Regular Expressions, 3rd Edition pdf

    ### 小结 - **正则表达式**作为一种强大的文本处理工具,在多种编程语言中都有广泛应用。 - 《Mastering Regular Expressions, 3rd Edition》不仅适合从未接触过正则表达式的读者入门学习,也适合已有基础的读者...

    php数组声明、遍历、数组全局变量使用小结

    在PHP编程语言中,数组是一种非常重要的数据结构,它允许我们高效地管理和操作一组变量,实现成批处理。...在实际开发中,这些概念和技巧会被广泛应用于诸如数据处理、表单提交、会话管理等多个场景。

    GO_vs_PHP:简单的比赛去VS PHP

    标题中的"GO_vs_PHP:简单的比赛去VS PHP"暗示了这次我们要探讨的是两种编程语言——Go(Golang)和PHP之间的对比。这两种语言在Web开发领域都有广泛的应用,但它们的设计理念、性能特点以及适用场景有所不同。 Go...

    国外比较好的几个的Php开源建站平台小结

    首先,我们来关注最著名的博客平台——WordPress。WordPress是由PHP开发的免费开源软件,不仅适合搭建博客,还可用于创建各种类型的信息发布平台。它的强大之处在于其丰富的主题和插件生态系统,使得用户可以根据...

    PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结

    针对在limit下进行预编译操作的场景,PHP5.2.*提供了新的绑定机制——使用问号"?"作为参数的占位符。这种机制在PHP5.1.*中不存在,因此不能用于PHP5.1.*版本。 ```php $stmt=$dbh-&gt;prepare('select * from t2 where...

    php防盗链的常用方法小结

    在互联网上,资源的共享是常见的,但同时也会带来一个问题——防盗链。防盗链是指防止其他网站通过链接直接引用你的服务器资源,尤其是高流量的图片、视频或下载文件,这可能导致你的服务器带宽被大量消耗,甚至影响...

    PHP的openssl加密扩展使用小结(推荐)

    其特点在于加密速度快,加密前后数据大小变化小,但密钥管理却是一个挑战,因为任何一方的密钥泄露都会导致安全性的丧失。 非对称加密算法则使用一对密钥——公钥和私钥。公钥可以公开,用于加密数据,而私钥则需...

    nosql 入门教程

    1.6 小结 16 第2章 NoSQL上手初体验 17 2.1 第一印象——两个简单的例子 17 2.1.1 简单的位置偏好数据集 17 2.1.2 存储汽车品牌和型号数据 22 2.2 使用多种语言 30 2.2.1 MongoDB驱动 30 2.2.2 初识Thrift ...

    【卷一/共两卷】AJAX实战pdf高清版90M

    1.5 小结 1.6 资源 第2章 Ajax新手上路 2.1 Aiax的关键元素 2.2 用JavaScript改善用户体验 2.3 用CSS定义应用的外观 2.3.1 CSS选择器 2.3.2 CSS样式属性 2.3.3简单的CSS例子 2.4 用DOM组织视图 2.4.1 使用JavaScript...

Global site tag (gtag.js) - Google Analytics