标签:off ipa 文件写入 osi 代码 cas filename 没有 思维
=====================
文件上传和下载
=====================
一、php.ini的配置信息
file_uploads = On /Off 是否允许文件上传
upload_max_filesize=2M 上传的文件的最大大小
post_max_size = 8M POST数据所允许的最大大小
upload_tmp_dir 上传文件放置的临时目录
二、客户端上传设置
1、 表单必须是POST提交
2、 上传的类型:enctype="multipart/form-data"
3、上传使用的表单项
<input type="file" name=".." >
4、(可选)上传大小限制的表单隐藏域:MAX_FILE_SIZE,
<input type="hidden" name="MAX_FILE_SIZE" value="大小字节"/>
注意:此字段必须在文件输入字段之前(常放在form标签后面)
<html> <head><title>文件上传</title></head> <body> <form action=‘upload.php‘ method=‘POST‘ enctype=‘multipart/form-data‘> <input type=‘hidden‘ name=‘MAX_FILE_SIZE‘ value=‘1000000‘> 选择文件:<input type=‘file‘ name=‘myfile‘> <input type=‘submit‘ value=‘上传文件‘> </form> </body> </html>
三、在服务器端通过PHP处理上传
1、 使用$_FILES全局数组来接收上传信息
在每个上传的文件里,$_FILES中都会有5个属性:
error:上传的错误号:0--4
0:表示没有发生任何错误。
1:上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
2:表示上传文件大小超出了HTML表单隐藏域属性的MAX_FILE_SIZE元素所指定的最大值。
3:表示文件只被部分上传。
4:表示没有上传任何文件。
6:找不到临时文件夹
7:文件写入失败
name:上传的文件名
size:文件的大小
type:文件类型
tmp_name: 临时文件
2、判断是否为上传文件 is_uploaded_file()
1 <?php 2 //判断文件是否可以上传到服务器 3 //$_FILE[‘myfile‘][‘error‘]为0表示上传成功 4 if($_FILES[‘myfile‘][‘error‘] > 0){ 5 echo ‘上传错误‘; 6 switch ($_FILES[‘myfile‘][‘error‘]){ 7 case 1: die(‘上传文件大小超过PHP配置文件中的约定值:upload_max_filesize‘); 8 case 2: die(‘上传大小超出了表单中的约定值:MAX_FILE_SIZE‘); 9 case 3: die(‘文件只被部分上传‘); 10 case 4: die(‘没有上传任何文件‘); 11 default:die(‘未知错误‘); 12 } 13 } 14 ?>
3、将上传的文件移动到新位置 move_uploaded_file()
1 <?php 2 $path = ‘./uploads‘ 3 if(is_uploaded_file($_FILES[‘myfile‘][‘tmp_name‘])){ 4 if(!move_uploaded_file($_FILES[‘myfile‘][‘tmp_name‘],$path . ‘/‘ . $filename)){ 5 die(‘不能将文件移动到指定目录‘); 6 } 7 } 8 ?>
4、判断是否为可以上传的类型
1 <?php 2 //设置允许的上传类型 3 $allowtype = array(‘gif‘,‘jpg‘,‘png‘); 4 //拆分数组,并删除后缀名 5 $cs = array_pop(explode(‘.‘,$FILES[‘myfile‘][‘name‘])); 6 //通过判断文件的扩展名来决定是否是允许上传的类型 7 if(!in_array($cs,$allowtype)){ 8 die("这个后缀名是{$cs},不是允许上传的文件类型"); 9 } 10 ?>
5、判断允许上传文件大小
1 <?php 2 $size = 100000; 3 if($FILES[‘myfile‘][‘size‘] > $size){ 4 die(‘超过了允许{$size}字节大小‘): 5 } 6 ?>
6、上传后系统定义文件名
1 <?php 2 //为了系统安全,也为了同名文件不会被覆盖,上传后将文件名使用系统定义 3 $cs = array_pop(explode(‘.‘,$FILES[‘myfile‘][‘name‘])); 4 $filename = date(‘YmdHis‘).rand(100,999) . ‘.‘ . $cs; 5 } 6 ?>
四、多个文件上传
只要在客户端多提供几个类型为file的输入表单,并设置不同的name属性值
1 <html> 2 <head><title>文件上传</title></head> 3 <body> 4 <form action=‘upload.php‘ method=‘POST‘ enctype=‘multipart/form-data‘> 5 <input type=‘hidden‘ name=‘MAX_FILE_SIZE‘ value=‘1000000‘> 6 选择文件1:<input type=‘file‘ name=‘myfile[]‘><br> 7 选择文件2:<input type=‘file‘ name=‘myfile[]‘><br> 8 选择文件3:<input type=‘file‘ name=‘myfile[]‘><br> 9 <input type=‘submit‘ value=‘上传文件‘> 10 </form> 11 </body> 12 </html>
五、文件下载
1 <?php 2 header("Content-Type:类型"); //指定下载的文件类型 3 header("Content-Disposition:attachment;filename=文件名"); //指定下载的文件描述 4 header("Content-Length:文件大小"); //指定下载的文件大小 5 readfile("./uploads/".$picname); //读取并输出图片内容 6 ?>
六、思维导图
标签:off ipa 文件写入 osi 代码 cas filename 没有 思维
原文地址:http://www.cnblogs.com/sqyysec/p/6747615.html