<!--upload.php内容-->
<?php
/*
修改php.ini的设置
file_uploads必须是On
upload_max_filesize 设置上传文件的大小,此值小于post_max_size
post_max_size 设置POST方法可以接收的最大值
upload_tmp_dir 上传文件存放的临时目录
*/
header("Content-Type:text/html;charset=utf-8");
/*
Array
(
[pic] => Array
(
[name] => 195_4074_831a070561e20a0.jpg
[type] => image/jpeg
[tmp_name] => C:\wamp\tmp\php45.tmp
[error] => 0
[size] => 43274
)
)
*/
//第一步: 判断错误
if($_FILES['pic']['error'] > 0) {
switch($_FILES['pic']['error']) {
case 1:
echo "表示上传文件的大小超出了约定值。文件大小的最大值是在PHP配置文件中指定的,该指令是:upload_max_filesize<br>";
break;
case 2:
echo "表示上传文件大小超出了HTML表单隐藏域属性的MAX_FILE_SIZE元素所指定的最大值1M<br>";
break;
case 3:
echo "表示文件只被部分上传<br>";
break;
case 4:
echo "表示没有上传任何文件<br>";
break;

default:
echo "末知错误<br>";
break;
}
exit;
}

//第二步: 判断类型
$arr = explode(".", basename($_FILES['pic']['name']));
$hz = array_pop($arr);

$allowtype =array("gif", "png", "jpg", "jpeg");

if(!in_array($hz, $allowtype)) {
echo "上传的类型不合法";
exit;
}

//第三步: 判断大小
$maxsize= 1000000;
if($_FILES['pic']['size'] > $maxsize) {
echo "上传的文件超过了,{$maxsize}字节!";
exit;
}

//第四步, 上传后的文件名一定要设置
$tmpfile = $_FILES['pic']['tmp_name'];
//设置随机文件名
$srcname = "./uploads/".date("YmdHis").rand(100, 999).".".$hz;

//将临时目录下的上传的文件,复制到我指定目录下, 指定的名子就可以完成上传
if( move_uploaded_file($tmpfile, $srcname) ) {
echo "上传成功!";
}else{
echo "上传失败!";
}
?>

<!--upform.html内容-->
<!--上传用表单,必须使用post方法,enctype="multipart/form-data"必须使用 -->
<form action="upload.php" method="post" enctype="multipart/form-data" >
name: <input type="text" name="username" value="" /><br>
<!--隐藏表单,作用是在文件超过1m时会进行提示,只是一个友好的提示 -->
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
up pic: <input type="file" name="pic" value=""><br>

<input type="submit" value="upload" /><br>

</form>

PHP文件上传设置和处理(单文件)的更多相关文章

  1. PHP文件上传设置和处理(多文件)

    <!--upload.php文件内容--><?phpheader("Content-Type:text/html;charset=utf-8");/* //原来$ ...

  2. PHP实现文件上传和下载(单文件上传、多文件上传、多个单文件上传)(面向对象、面向过程)

    今天我们来学习用PHP进行文件的上传和下载,并且用面向过程和面向对象的方式对文件上传进行一个限制 一.简单的上传测试 1.客户端:upload.php 2.后端:doAction.php 结果: 二. ...

  3. 表单多文件上传样式美化 && 支持选中文件后删除相关项

    开发中会经常涉及到文件上传的需求,根据业务不同的需求,有不同的文件上传情况. 有简单的单文件上传,有多文件上传,因浏览器原生的文件上传样式及功能的支持度不算太高,很多时候我们会对样式进行美化,对功能进 ...

  4. java:struts框架3(自定义拦截器,token令牌,文件上传和下载(单/多))

    1.自定义拦截器: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...

  5. jspsmartupload 文件上传让input数据和文件上传同时提交

    一.使用原因: 文件上传时,表单的属性中必须要有multipart/form-data,如以下例子: <form name="form_post" class="a ...

  6. struts文件上传,获取文件名和文件类型

    struts文件上传,获取文件名和文件类型   Action中还有两个属 性:uploadFileName和uploadContentType,这两个属性分别用于封装上传文件的文件名.文件类型.这是S ...

  7. 【FTP】java FTPClient 文件上传内容为空,文件大小为0

    问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: ...

  8. Struts2文件上传(基于表单的文件上传)

    •Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目   •Commons-Fil ...

  9. servlet文件上传2——复合表单提交(数据获取和文件上传)

    上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...

随机推荐

  1. POJ 3162 Walking Race (树的直径,单调队列)

    题意:给定一棵带边权的n个节点的树,首先要求出每个点的最长路,然后写成序列d[1],d[2]...d[n],然后求满足 区间最大值-区间最小值<=k 的最大区间长度为多少? 思路: 分两步进行: ...

  2. 删除.cpp文件

    今天启动vc6.0后随手直接建了一个.cpp文件(没有建什么工程的),编译运行成功后,就把vc关了.后想把这个随手建的文件给删掉,却怎么也找不到这个文件,文件搜索或改变文件的属性也无法找到这个文件,即 ...

  3. iOS上架问题解决

    dns问题 http://iphone.91.com/tutorial/syjc/140509/21686339.html 网络问题 手机4g开wifi,上传提交多次 时间问题 东八区下午6点上架成功 ...

  4. Android(java)学习笔记144:网络图片浏览器的实现(ANR)

    1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...

  5. HDU 6166 Senior Pan(多校第九场 二进制分组最短路)

    题意:给出n个点和m条有向边(有向边!!!!我还以为是无向查了半天),然后给出K个点,问这k个点中最近的两点的距离 思路:比赛时以为有询问,就直接丢了,然后这题感觉思路很棒,加入把所有点分成起点和终点 ...

  6. PJSIP-iOS源码编译

    官方文档https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone 功能 在iPhone上可以实现的功能: 包含基于CoreAudio的音频设备, ...

  7. UVa-1368-DNA序列

    这题的话,我们每次统计的话,是以列为外层循环,以行为内层循环,逐一按列进行比较. 统计完了之后,题目中要求说到要hamming值最小的,那我们就选用该列最多的字母就可以了,如果有数目相等的字母,那就按 ...

  8. mysql 5.5安装/卸载使用总结

    安装 卸载 1.在控制面板->卸载与更改程序 中卸载mysql 2.删除安装目录下的mysql文件夹 3.删除隐藏文件夹C:\ProgramData\中的MySQL,否则再次安装时会卡在 sta ...

  9. leetcode-2-basic

    解题思路: 题目本身挺简单的,考虑用set,判断每个单词的字母是不是属于同一个集合.需要注意的是:1)set的构造方法:2)单词可能是大小写混合的,不一定只是首字母大写: 3)break是跳出循环=. ...

  10. (转)iOS完成学习路线

    转自 MJ大神博客 原文地址http://blog.csdn.net/q199109106q/article/details/8596506 晚特地花时间整理出了iOS的完整学习路线图,希望对大家有帮 ...