[moka同学代码]PHP初级知识:上传文件源码

1.目录结构

    

2.index.php

<html>
<head>
    <meta charset="utf-8">
    <title>上传文件</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
    <label for="file">文件名</label>
    <input type="file" name="file" id="file"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

3.upload.php

<?php
//上传文件代码
//核心代码:
/*if($_FILES[‘file‘][‘error‘]>0){
    echo   ‘错误:‘.$_FILES[‘file‘][‘error‘].‘<br>‘;
}else{
    echo ‘上传文件名:‘.$_FILES[‘file‘][‘name‘].‘<br>‘;
    echo ‘文件名类型:‘.$_FILES[‘file‘][‘type‘].‘<br>‘;
    echo ‘文件大小:‘.($_FILES[‘file‘][‘size‘]/1024).‘kb<br>‘;
    echo ‘文件临时存放地址:‘.$_FILES[‘file‘][‘tem_name‘];
}*/

//上传文件所需要的代码,但是在上传之前需要对文件进行判断限制,大小,类型等

//允许上海窜的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]); //截取文件后缀
$extension = end($temp); //文件后缀
$type = $_FILES["file"]["type"];
$size = $_FILES["file"]["size"];
$error = $_FILES["file"]["error"];
$name = $_FILES["file"]["name"];
$tmp_name = $_FILES["file"]["tmp_name"];
if (($type == "image/gif") || ($type == "image/jpeg") || ($type == "image/jpg") || ($type == "image/pjpeg") ||
    ($type == "image/x-png") || ($type == "image/png") && $size < 2048 && in_array($extension, $allowedExts)
) {
    if ($error > 0) {
        echo "错误:" . $error . ‘<br>‘;
    } else {
        echo "文件名称:" . $name . "<br>";
        echo "文件类型:" . $type . "<br>";
        echo "文件大小:" . ($size / 1024) . "kb<br>";
        echo "临时存放位置:" . $tmp_name;

        //判断存放文件的目录中是否存在该文件,如果没有,需要创建它,file的目录权限为777
        if (file_exists("file/" . $name)) {
            echo $name . "文件已经存在。";
        } else {
            move_uploaded_file($tmp_name, ‘file/‘. $name);
            echo "文件存储在:" . "file/". $name;
        }

    }
} else {
    echo "非法文件";
}
时间: 2024-08-02 03:29:15

[moka同学代码]PHP初级知识:上传文件源码的相关文章

Hadoop之HDFS原理及文件上传下载源码分析(下)

上篇Hadoop之HDFS原理及文件上传下载源码分析(上)楼主主要介绍了hdfs原理及FileSystem的初始化源码解析, Client如何与NameNode建立RPC通信.本篇将继续介绍hdfs文件上传.下载源解析. 文件上传 先上文件上传的方法调用过程时序图: 其主要执行过程: FileSystem初始化,Client拿到NameNodeRpcServer代理对象,建立与NameNode的RPC通信(楼主上篇已经介绍过了) 调用FileSystem的create()方法,由于实现类为Dis

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示.这次我们演示利用swfupload多文件上传,项目上文件上传是比不可少的,大家这个心里都知道.主要提供给源码说明及下载 最终效果图: SWFUpload的特点: 1.用flash进行上传,页面无刷新,且可自定义Flash按钮的样式; 2.可以在浏

php实现文件上传的源码

php实现文件上传的源码,更多php技术开发就去php教程网,http://php.662p.com <?php ##author :Androidyue ##sina @androidyue ##Blog http://blog.csdn.net/BossDarcy ##源码具体讲解 http://blog.csdn.net/BossDarcy/archive/2010/12/20/6086082.aspx //判断临时文件存放路径是否包含用户上传的文件 if(is_uploaded_file

.NET CORE上传文件到码云仓库【搭建自己的图床】

.NET CORE上传文件到码云仓库[搭建自己的图床] 先建一个公共仓库(随意提交一个README文件或者.gitignore文件保证master分支的存在),然后到gitee的个人设置页面找到[私人令牌]菜单创建一个access_token.Gitee官方还友好的提供了基于swagger的API文档和调试页面: https://gitee.com/api/v5/swagger#/postV5ReposOwnerRepoContentsPath 搭建步骤 1.新建一个名为imagebed的仓库

asp.net+swfupload 多图片批量上传(附源码下载)

asp.net的文件上传都是单个文件上传方式,无法执行一次性多张图片批量上传操作,要实现多图片批量上传需要借助于flash,通过flash选取多个图片(文件),然后再通过后端服务进行上传操作. 本次教程所使用的flash上传文件是 swfupload,下面会有源码下载链接. 使用工具 vs 2010. 演示效果图 第一步 新建一个web项目 第二步 引入所需swfuplod文件(swfupload.swf,js,css等) 第三步 新建一个一般处理程序(upload.ashx) upload.a

Hadoop之HDFS原理及文件上传下载源码分析(上)

HDFS原理 首先说明下,hadoop的各种搭建方式不再介绍,相信各位玩hadoop的同学随便都能搭出来. 楼主的环境: 操作系统:Ubuntu 15.10 hadoop版本:2.7.3 HA:否(随便搭了个伪分布式) 文件上传 下图描述了Client向HDFS上传一个200M大小的日志文件的大致过程: 首先,Client发起文件上传请求,即通过RPC与NameNode建立通讯. NameNode与各DataNode使用心跳机制来获取DataNode信息.NameNode收到Client请求后,

Openstack liberty Glance上传镜像源码分析

该文同时发布在[ceph中国社区],署名为Thomas,另外截图不是很清晰,有需要的读者,可以留言索要,谢谢! 在Openstack中创建云主机,首先得有镜像,而Glance模块提供镜像服务功能,包括:镜像的发现.检索及存储等,主要包括:glance-api和glance-registery两个服务,分别负责镜像的存储和元数据管理.下面基于源码,分析下镜像的上传过程. 上传镜像 先通过glance CLI上传镜像,来直观的了解下镜像上传的过程: # glance --debug image-cr

新浪图床上传接口源码分享

部署源码之后自行修改账号密码为自己的新浪账号 <?php /** * 上传图片到微博图床 * @author Youngxj & mengkun & 阿珏 * @param $file 图片文件/图片url * @param $multipart 是否采用multipart方式上传 * @return 返回的json数据 * @code 200:正常;201:错误;203:cookie获取失败;404:请勿直接访问 * @ps 图片尺寸可供选择:square.thumb150.orj

web大文件上传断点续传源码

总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次网络连接时不必再重传.所以我们本地在上传的时候,要将大文件进行分片,比如分成1024*1024B,即将大文件分成1M的片进行上传,服务器在接收后,再将这些片合并成原始文件,这就是分片的基本原理.断点续