qqruser 发表于 2017-4-9 10:35:50

php学习笔记(十)文件的上传与下载

<?php
/**
* 文件上传和下载
* 1.表单提交
*         表单必须要改的method="post"
*         enctype="multipart/form-data"
*         php.ini:
*             file_uploads=On;
*             upload_max_filesize = 2M;//上传限制
*             post_max_size = 8M;//表单传递的最大尺寸
*      $myfile1:可以用来控制上传文件的类型
*            type是MIME类型:网络
*                text
*                  text/html
*                  text/plain
*                image
*                  image/gif
*                  image/jpeg
*                  image/png
*                audio
*                  audio/x-midi .mid .midi
*                  audio/x-wav
*                video
*                  video/quicktime .qt .mov
*                  video/mpeg .mpeg
*                application
*                  application/pdf
*                  application/msword .doc .dot
*                  application/vnd.ms-excel .xls
*                  application/vnd.ms-powerpoint .ppt
*                  application/zip .zip
*                  application/rar .rar
*                  application/xml .xml
*                  application/mshelp .hlp .chm
*                  application/octet-stream .ext .bin .com .dll
*                multipart
*                message
* 2.对文件的操作
*         上传文件拷贝的函数:
*             move_uploaded_file()
*         error的提示符及原因:
*             case 1:上传文件超过了upload_max_filesize这个值
*             case 2:上传文件超过了表单中MAX_FILE_SIZE选项指定的值
*             case 3:文件只有部分被上传
*             case 4:没有文件上传
*
* 3.下载文件(在下载页面,只允许写如下代码,不可以写其他的html多余代码)
*         对于图片和html或者php下载应该写头
*             header();方法前不许有输出,即使是html也不可以
*         图片下载:
header("Content-type:image/jpeg");
//设置下载文件
header('Content-disposition:attachment:filename='.$filename);
*         
*/
$filename = "one.html";
//设置下载类型
header("Content-type:text/html");
//设置下载文件
header('Content-Disposition:attachment;filename='.$filename);
//设置文件下载大小
header("Content-Length:".filesize($filename));
$fp = fopen($filename, "r");
while (feof($fp)==FALSE){
echo fread($fp, 1024);
}
fclose($fp);
?>

<html>
<head>
<title>文件上传</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username"><br>
密码:<input type="password"" name="password"><br>
<hr><br>
<input type="file" name="myfile1">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input type="file" name="myfile2">
<input type="file" name="myfile[]">
<input type="file" name="myfile[]">
<input type="file" name="myfile[]">
<input type="file" name="myfile[]">
<input type="file" name="myfile[]">
<input type="file" name="myfile[]">
<input type="file" name="myfile[]">
<input type="submit" value="提交"><br>
</form>
</body>
</html>

<?php
$username = $_POST["username"];
$password = $_POST["password"];
//可以重名;然后按照数组来取值
$myfile1 = $_FILES["myfile1"];
$myfile2 = $_FILES["myfile2"];
$name3 = $_FILES["myfile"];
$name4 = $_FILES["myfile"];
$name5 = $_FILES["myfile"];
print_r($_FILES)."<br>";
echo "用户名:".$username."密码:".$password."<br>";
echo "文件一名:".$myfile1."<br>";
echo "文件一类型:".$myfile1."<br>";
echo "文件一文件路径:".$myfile1."<br>";
echo "文件一错误信息:".$myfile1."<br>";
echo "文件二:".$myfile2."<br>";
echo "文件三:".$name3."<br>";
echo "文件四:".$name4."<br>";
echo "文件五:".$name5."<br>";
$uploadfile = $myfile1;
$copyto = "test/".time().$uploadfile;
if (is_uploaded_file($uploadfile)){
if (move_uploaded_file($uploadfile, $copyto)){
echo "上传文件成功<br>";
}else{
echo "上传文件失败<br>";
}
}
?>
页: [1]
查看完整版本: php学习笔记(十)文件的上传与下载