如图所示:点击浏览出现选择文件的对话框,将所选文件上传到保存文件的文件。

 关键点:文件上传的图解:

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form method="post" action="chuli.php" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="上传"/>
</form>
</body>
</html>

  chuli.php

<?php
//读取上传的文件信息,以数组方式返回
$arr = $_FILES["file"];
//var_dump($arr);
//以下为输出内容:此处作为注释写在这,便于理解
//array(5) {
//["name"]=> 文件名称
//string(5) "7.png"
//["type"]=> 文件类型
//string(9) "image/png"
//["tmp_name"]=> 文件临时储存的地方
//string(53) "C:\Users\Administrator\AppData\Local\Temp\phpF626.tmp"
//["error"]=> 报错:上传没错则为0;有错则会提示错误
//int(0)
//["size"]=> 上传文件的大小
//int(18747)
//} //上传的文件被保存的文件名,images 为同一目录下要保存上传文件的文件名
$filename="./images/".$arr["name"]; //转换格式,将utf-8转为国标
$filename = iconv("UTF-8","gb2312",$filename); //将文件从临时文件移到保存的文件(核心代码)
move_uploaded_file($arr["tmp_name"],$filename);
?>

  到此处便可以实现文件的上传功能;但是如我们所知,实际上文件上传时会有很多要求;诸如文件类型,文件大小,文件名是否重复等

所以要对chuili.php进行修改:

<?php

$arr = $_FILES["file"];

//加限制条件

if(($arr["type"]=="image/jpeg" || $arr["type"]=="image/png") && $arr["size"]<1024000 )
{
//临时文件的路径
//$arr["tmp_name"]; $filename = "./images/".time().$arr["name"]; //保存之前判断该文件是否存在
if(file_exists($filename))
{
echo "该文件已存在";
}
else
{ $filename = iconv("UTF-8","gb2312",$filename); move_uploaded_file($arr["tmp_name"],$filename);
}
}
else
{
echo "上传的文件大小或类型不符合";
}

  这样,就基本可以实现文件的上传功能了~~~

要注意的几点:

1、加限制条件从下面几方面加:         1、文件类型   2、文件大小  3、保存的文件名不重复

2、为了防止重复,文件名采取以下措施   1、用户名加时间戳    2、类似网盘,用文件夹分类

如何用php实现简单的文件上传功能?(带图解)的更多相关文章

  1. nodejs 实现简单的文件上传功能

    首先需要大家看一下目录结构,然后开始一点开始我们的小demo. 文件上传总计分为三种方式: 1.通过flash,activeX等第三方插件实现文件上传功能. 2.通过html的form标签实现文件上传 ...

  2. java 网络编程之TCP通信和简单的文件上传功能

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  3. Python 简单的文件上传功能

    简单地在程序当前目录下上传一张图片: 1.png 到程序的 yuan 文件夹下.这里使用的是固定参数 post,如果后期有需求,可以增加判断来更加完善程序. # server 端 import soc ...

  4. spring mvc 3.0 实现文件上传功能

    http://club.jledu.gov.cn/?uid-5282-action-viewspace-itemid-188672 —————————————————————————————————— ...

  5. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  6. 使用jsp/servlet简单实现文件上传与下载

    使用JSP/Servlet简单实现文件上传与下载    通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ...

  7. Django 实现简单的文件上传

    今天分享一下Django实现的简单的文件上传的小例子. 步骤 创建Django项目,创建Django应用 设计模型 处理urls.py 以及views.py 设计模板,设计表单 运行项目,查看数据库 ...

  8. 简单的文件上传的下载(动态web项目)

    1.在页面中定义一个form表单,如下: <!-- 文件上传 --> <form action="${pageContext.request.contextPath}/Fi ...

  9. DVWA靶机--简单的文件上传漏洞

    简单的文件上传漏洞(靶机安全级别:low) 事先准备好一句话木马,密码为pass 上传一句话木马,显示上传路径(一般网站是不会显示路径的,这里靶机为了方便你测试漏洞,直接显示出了路径: ../../h ...

随机推荐

  1. 使用U盘安装ubuntu 12.04(使用大白菜u盘启动工具)

    家里有个u盘启动盘,用大白菜U盘工具做的. 1.把iso文件放到u盘里,把ISO文件中的casper目录下的vmlinuz和initrd拷贝到u盘根目录下: 2.修改启动顺序,选u盘启动: 3.启动时 ...

  2. (iOS)sqlcipher和FMDB的使用总结(原创)

    写这篇文章的原因是之前接触到了关于sqlite数据库加密的问题,一般数据库加密,无非是数据加密和数据库文件加密,当然数据库文件加密对手机效率可能更高一些. 下面就讲一下,自己对sqlcipher和fm ...

  3. WebService基础学习(三)—CXF

    一.什么是CXF?      Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF.Apache ...

  4. python 线程与进程

    线程和进程简介 应用程序和进程以及线程的关系? 一个应用程序里可以有多个进程,一个进程里可以有多个线程 最原始的计算机是如何运行的? CPU是什么?为什么要使用多个CPU? 为什么要使用多线程? 为什 ...

  5. lua 字符串

    lua 字符串 语法 单引号 双引号 "[[字符串]]" 示例程序 local name1 = 'liao1' local name2 = "liao2" lo ...

  6. 【2017-04-21】Ado.Nte属性扩展

    通过对数据库表的封装,对该表的属性进行扩展. 1.例如:表中的性别是bool类,要实现显示给用户看的为“男.女” 2.通过表中的生日datetime类,来实现显示给用户看的年月日,自动计算年龄. 3. ...

  7. java异常总结(转载)

    转至 Java常见异常(Runtime Exception )小结 http://www.apkbus.com/android-58405-1-1.html 本文重在Java中异常机制的一些概念.写本 ...

  8. 基于R树索引的点面关系判断以及效率优化统计

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的博客中,我分别介绍了基于网格的空间索引(http:// ...

  9. (知识点)JavaScript原型和原型链

    〇 每个函数都拥有prototype属性,而该属性所储存的就是原型对象 1)原型属性—— 上面我们测试了foo()函数的 1) length属性(length属性除了可以用在数组中,还可以用于记录函数 ...

  10. 【代码学习】PHP 正则表达式

    一.正则表达式介绍 正则表达式是用于描述字符排列和匹配模式的一种规则,主要用于字符串的匹配.查找.替换.分割等操作 ------------------------------------------ ...