php文件上传与下载

php文件上传

在经过form表单进行文件上传的,PHP须要用到预约义变量$_FILESphp

$_FILES['userfile']['name']    客户端机器文件的原名称。html

$_FILES['userfile']['type']  文件的 MIME 类型,若是浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,所以不要想固然认为有这个值。浏览器

$_FILES['userfile']['size']   已上传文件的大小,单位为字节。函数

$_FILES['userfile']['tmp_name']    文件被上传后在服务端储存的临时文件名。post

$_FILES['userfile']['error']   和该文件上传相关的错误代码spa

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<form action="upload1.php" method="post" enctype="multipart/form-data">
<div>
    <input type="file" name="textfile"><p>
    <input type="submit" value="上传文件">
</div>
   
</form>
</body>
</html>

对应处理的PHP代码.net

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/4/2
* Time: 23:55
*/
header('content-type:text/html;charset=utf-8');
print_r($_FILES);
//1.经过$_FILES文件上传变量接收上传文件信息
$fileInfo=$_FILES['textfile'];
$filename=$fileInfo['name'];
$type=$fileInfo['type'];
$tmp_name=$fileInfo['tmp_name'];
$size=$fileInfo['size'];
$error=$fileInfo['error'];
if($error==UPLOAD_ERR_OK){
   if(move_uploaded_file($tmp_name, "upload/".$filename)){
       echo '文件'.$filename.'上传成功';
   }else{
       echo '文件'.$filename.'上传失败';
   }
}else{
   //匹配错误信息
   switch($error){
       case 1:
           echo '上传文件超过了PHP配置文件中upload_max_filesize选项的值';
           break;
       case 2:
           echo '超过了表单MAX_FILE_SIZE限制的大小';
           break;
       case 3:
           echo '文件部分被上传';
           break;
       case 4:
           echo '没有选择上传文件';
           break;
       case 6:
           echo '没有找到临时目录';
           break;
       case 7:
       case 8:
           echo '系统错误';
           break;
   }
}

上面的代码只能说我把客户端过来的文件,放在了PHP文件对应的文件夹下面,主要用的的函数就是move_uploaded_file (将上传的文件移动到新位置)code

另外传输文件必需要用post方法进行提交,能够用is_uploaded_file ($_FILES['userfile']['tmp_name'] )进行检测。orm

这些也只是简单的完成文件上传,通常在实际项目中还要针对不一样的文件类型,文件大小进行判断。htm

文件的下载

对于文件的下载第一种方式就是经过a标签来完成,直接用href填写对应的链接地址

<a href="1.jpg">下载1.jpg</a>

第二种方式:

经过程序来完成:

php获得文件的信息来进行下载处理:

<?php 
$filename=$_GET['filename'];
header('content-disposition:attachment;filename='.basename($filename));
header('content-length:'.filesize($filename));
readfile($filename);

对于head函数:

Content-Disposition为属性名  attachment为以附件方式下载

Content-Length首部告诉浏览器报文中实体主体的大小

readfile函数输出一个文件来实现下载的功能

相关文章
相关标签/搜索