php文件上传——php经典实例

表单页

<html>
<head>
<title>文件上传</title>
<meta charset='utf-8' />
</head>
<body>
<form action='doupload.php' method='post' enctype='multipart/form-data'>
<input type='file' name='filename' />
<input type='submit' />
</form>
</body>
</html>

上传处理页

<?php
//var_dump($_FILES);
/*'filename' =>
array (size=5)
'name' => string '7730-15042G60S6-52.jpg' (length=22)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'D:\wamp64\tmp\phpE94A.tmp' (length=25)
'error' => int 0
'size' => int 338411*/
//获取文件信息
$fileinfo=$_FILES['filename'];
//文件上传路径
$path="./uploads/";
//大小 0不限止
$maxsize=; //判断错误号
if($fileinfo['error']>){
switch($fileinfo['error']){
case :$error="上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";break;
case :$error="上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";break;
case :$error="文件只有部分被上传。";break;
case :$error="没有文件被上传。";break;
case :$error="找不到临时文件夹";break;
case :$error="文件写入失败";break;
default:$error="未知错误,请稍后再试...";
}
}
//定义允许类型
$typearr=array("image/jpeg","image/png","image/gif");
//判断类型
if(count($typearr)>){
if(!in_array($fileinfo['type'],$typearr)){
die("文件上传失败!类型不符");
}
}
//取后缀
$ext=pathinfo($fileinfo['name'],PATHINFO_EXTENSION); //生成随机文件名
do{ $newname=date("YmdHis").rand(,).".".$ext; }while(file_exists($path.$newname)); //判断是否上传成功
if(is_uploaded_file($fileinfo['tmp_name'])){
if(move_uploaded_file($fileinfo['tmp_name'],$path.$newname)){
echo "上传成功!";
}else{
die("移动失败!");
} }else{
die("未知错误!请重试"); } ?>

php文件上传——php经典实例的更多相关文章

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

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

  2. JavaWeb实现文件上传下载功能实例解析 (好用)

    转: JavaWeb实现文件上传下载功能实例解析 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web ...

  3. Django文件上传(经典上传方式)

    经典文件上传方式 创建URL from django.contrib import admin from django.urls import path from django.conf.urls i ...

  4. JSCH实现文件上传的代码实例

    package com.vcredit.ddcash.monitor.sendmail; import java.io.File;import java.io.FileInputStream;impo ...

  5. PHP 文件上传的综合实例

    1.upload.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <htm ...

  6. Java文件上传之SpringMVC实例

    一.配置文件 web.xml <?xml version="1.0" encoding="UTF-8"?><web-app version=& ...

  7. FasfDFS整合Java实现文件上传下载功能实例详解

    https://www.jb51.net/article/120675.htm 在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java ...

  8. jsp简易文件上传(common.fileupload)

    昨天开始重新架构我的V&View(维视),之前写文章使用的是一个kindediter的插件,挺好用的.最近不知道咋了,出现了些小问题.早在写V&View的时候就想用以下两种方法实现文章 ...

  9. 【SSH2(实用文章)】--Struts2文件上传和下载的例子

    回想一下,再上一篇文章Struts2实现机制,该步骤做一步一步来解决,这种决心不仅要理清再次Struts2用法.映射机制及其在深入分析.最后一个例子来介绍Struts2一种用法,这里将做一个有关文件上 ...

随机推荐

  1. 用到的C++标准库

    std::set<type>, 模板写的平衡二叉树的集合容器, method: insert, count, std:map<int, string>, 映射和多重映射基于某一 ...

  2. Vue数据绑定和响应式原理

    Vue数据绑定和响应式原理 当实例化一个Vue构造函数,会执行 Vue 的 init 方法,在 init 方法中主要执行三部分内容,一是初始化环境变量,而是处理 Vue 组件数据,三是解析挂载组件.以 ...

  3. 【bzoj4897】[Thu Summer Camp2016]成绩单 区间dp

    题目描述 给你一个数列,每次你可以选择连续的一段,付出 $a+b\times 极差^2$ 的代价将其删去,剩余部分拼到一起成为新的数列继续进行此操作.求将原序列全部删去需要的最小总代价是多少. 输入 ...

  4. Android四大组件之Activity & Fragement(续)

    1.Activity和Fragment的异同. Activity是UI界面交互的主体,而fragment是这个主体上的元素. 一个activity可以包含0到n个fragment. fragment可 ...

  5. MySQL事务提交过程

    一.MySQL事务提交过程(一) MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提交过程. 由于mysql插件式存储架构,导致开启binlog后,事务提交实 ...

  6. 浅谈FFT&NTT

    复数及单位根 复数的定义大概就是:\(i^2=-1\),其中\(i\)就是虚数单位. 那么,在复数意义下,对于方程: \[ x^n=1 \] 就必定有\(n\)个解,这\(n\)个解的分布一定是在复平 ...

  7. 2017-2018-2 20165218 实验四《Android开发基础》实验报告

    实验三 Android开发基础 课程:java程序设计 姓名:赵冰雨 学号:20165218 指导教师:娄嘉鹏 实验日期:2018.4.14 实验内容: 1.基于Android Studio开发简单的 ...

  8. 【CF375C】Circling Round Treasures

    Portal --> CF375C Solution 一个有趣的事情:题目中有很大的篇幅在介绍如何判断一个位置在不在所围的多边形中 那么..给了方法当然就是要用啊 ​ 首先是不能包含\('B'\ ...

  9. PID控制算法的C语言实现十一  模糊算法简介

    在PID控制算法的C语言实现九中,文章已经对模糊PID的实质做了一个简要说明.本来打算等到完成毕业设计,工作稳定了再着力完成剩下的部分.鉴于网友的要求和信任,抽出时间来,对模糊PID做一个较为详细的论 ...

  10. Linux常用网络工具:批量主机服务扫描之netcat

    netcat又叫做瑞士军刀,是黑客和系统管理员常用的网络工具,最初开发的目的是文件传输,后来发展出很多强大的功能,比如也可以完成批量主机服务扫描. 之前介绍了另一个更常用的批量主机服务扫描工具:nma ...