php上传文件代码解析
思想;把html的input标签组织成一个数组,然后去重
关键技术涉及的函数 is_dir mkdir move_uploaded_file()
涉及的数组 预定义数组$_FILES
步骤一:检查上传文件夹是否存在,如果不存在就创建(注意!尽量使用绝对路径,否则可能上传失败)
$targetdir = "H:\\myphpproject\\myPHP\\upresource";
if (!is_dir($targetdir)){
mkdir($targetdir);
}
step2: 把html的input标签组织为数组,关键在于name属性要起做 xxxx[]的形式
<form method="post" action="upfile.php" enctype="multipart/form-data">
<div class="media text-muted pt-3">
<input type="file" class="form-control" name="myfile[]" aria-label="Amount (to the nearest dollar)">
</div>
<div class="media text-muted pt-3">
<input type="file" class="form-control" name="myfile[]" aria-label="Amount (to the nearest dollar)">
</div>
<div class="media text-muted pt-3">
<input type="file" class="form-control" name="myfile[]" aria-label="Amount (to the nearest dollar)">
</div>
<br/>
<button type="submit" class="btn btn-success">提交</button>
</form>
step3:对上传文件去重,并组织上传文件的数组; 关键技术 array_unique
$arrayfile = array_unique($_FILES['myfile']['name']);
step4:循环遍历input标签获得文件名,并和目标文件夹路径组成上传文件的绝对路径
$path = $targetdir."\\".$v;
step5:循环遍历每个input标签,上传文件 关键技术:foreach ($arrayfile as $k=>$v);上传用到 move_uploaded_file($_FILES[标签数组名][‘tmp_name’][数组索引],$v),其中tmp_name是固定用法,不必深究;$v是上传成功后,文件的绝对路径名
$res是判断上传结果的布尔型变量
foreach($arrayfile as $k=>$v)
{
$path = $targetdir."\\".$v;
if ($v)
{
if(move_uploaded_file($_FILES['myfile']['tmp_name'][$k],$path))
{
$res = TRUE;
}
else {
$res=FALSE;
}
}
}
整体既视感如下
html上传文件部分 ----input标签 type要设置成 file, enctype="multipart/form-data"不能省略
<form method="post" action="upfile.php" enctype="multipart/form-data">
<div class="media text-muted pt-3">
<input type="file" class="form-control" name="myfile[]" aria-label="Amount (to the nearest dollar)">
</div>
<div class="media text-muted pt-3">
<input type="file" class="form-control" name="myfile[]" aria-label="Amount (to the nearest dollar)">
</div>
<div class="media text-muted pt-3">
<input type="file" class="form-control" name="myfile[]" aria-label="Amount (to the nearest dollar)">
</div>
<br/>
<button type="submit" class="btn btn-success">提交</button>
</form>
整个上传文件控制编码部分
<?php
$targetdir = "H:\\myphpproject\\myPHP\\upresource";
if (!is_dir($targetdir)){
mkdir($targetdir);
}
$arrayfile = array_unique($_FILES['myfile']['name']);
$res = FALSE;
foreach($arrayfile as $k=>$v)
{
$path = $targetdir."\\".$v;
if ($v)
{
if(move_uploaded_file($_FILES['myfile']['tmp_name'][$k],$path))
{
$res = TRUE;
}
else {
$res=FALSE;
}
}
}
if ($res==TRUE)
{
echo "文件上传成功";
}
else {
echo "文件上传失败";
}
?>
php上传文件代码解析的更多相关文章
- iOS上传文件代码,自定义组装body
以下代码为上传文件所用代码,简单方便,搞了好久,终于知道这么简单的方式来上传. 其它类库也就是把这几句代码封装的乱七八糟得,让你老久搞不懂原理.不就是在body上面加点字符串,body下面加点字符串, ...
- ExtJS + fileuploadfield上传文件代码
后台服务端接收文件的代码: /** * 后台上传文件处理Action */ @RequestMapping(value = "/uploadFile", method=Reques ...
- php 上传文件代码
通过 PHP,能够把文件上传到server.里面加入一些图片的推断,假设不加推断文件的类型就能够上传随意格式的文件. 为了站点的安全,肯定不让上传php文件,假设有人进入你的后台,上传了一个php文件 ...
- java上传文件代码
import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;impo ...
- PHP上传文件代码练习2 (重复文章)
表单: <html> <head> <meta http-equiv="Content-Type" content="text/html; ...
- SpringMvc通过controller上传文件代码示例
上传文件这个功能用的比较多,不难,但是每次写都很别扭.记录在此,以备以后copy用. package com.**.**.**.web.api; import io.swagger.annotatio ...
- git 和码云的上传文件代码操作
Git与Github的连接与使用 一 安装git软件 1.git介绍 ''' git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 分布式相比于集中式的最大区别在于开发 ...
- javaWeb上传文件代码
javaweb两种方式的上传,1普通上传,2:jquery ajax后台上传,部分截图如下: 完成包下载,下载后倒入myeclipse工程即可,下载地址:http://files.cnblogs.co ...
- easyui 上传文件代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;usi ...
随机推荐
- C#实现多线程的方式:使用Parallel类
简介 在C#中实现多线程的另一个方式是使用Parallel类. 在.NET4中 ,另一个新增的抽象线程是Parallel类 .这个类定义了并行的for和foreach的 静态方法.在为 for和 f ...
- linux中su和sudo区别
su切换用户,切换成root用户,要输入root用户的密码 su - 用户名 sudo 涉及到 /etc/sudoers文件 ,内容如下: # User privilege specificatio ...
- PTA(Basic Level)1087.有多少不同的值
当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分.) 输入格式: ...
- [转帖]爬过这 6 个坡,你就能对 Linux 操作系统了如指掌
爬过这 6 个坡,你就能对 Linux 操作系统了如指掌 http://www.51testing.com/html/16/n-4461316.html 学习的任务 任重道远 我现在处于第一阶段. 发 ...
- 什么是云服务器ECS
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务.云服 ...
- Junit+Mock单元测试
项目用的是maven,所需jar包在pom.xml文件里面配置,单元测试要用的jar具体如下: <dependency> <groupId>junit</groupId& ...
- oracle 安装后参数调整
关闭11g 新特性 开归档 oracle 11g安装完成需修改:1.关闭审计alter system set audit_trail=none scope=spfile sid='*'; 防止ORA- ...
- oa_mvc_easyui_登录完成(2)
1.使用MVC特有的ajax方式:异步表单提交方式 js文件引用:<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" ...
- ELK电子书籍
Elasticsearch in Action(英文版).pdfElasticsearch实战 in action(中文版).pdfElasticsearch技术解析与实战.pdfElasticsea ...
- python如何判断字符串是否以某个字母或者数字结尾
1.如果是对某个确定的字符或者数字进行判断,可以直接使用endswith()方法 # 判断str_a是否以‘A’结尾 str_a = '20190813A' print(str_a.endswith( ...