1、创建一个文件上传表单
请留意如下有关此表单的信息:
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
2、创建上传脚本
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
PHP文件的上传与下载
文件上传
1.1 客户端上传设置
???① form 必须用 post
???② 给form 指定属性 ?enctype=’multipart/form-data’
???③<input type=‘file‘ name="">
???④ 表单中可以对上传文件的大小进行限制 ?(可选)<input type=‘hidden‘ name="MAX_FILE_SIZE" value="">
???????必须写到 input:file 的前面
1.2 在服务器端通过PHP处理上传
???1.2.1 PHP配置文件中与文件上传有关的选项
???????指令名 ????????????????默认值 ????????功能描述
???????file_uploads ???????????ON ?????????????是否开启文件上传
???????max_file_uploads = 20 ??上传文件数量限制
???????upload_max_filesize 单个文件 ???2M ?????????限制PHP处理上传文件大小的最大值,此值必须小于post_max_size
???????post_max_size ??????????8M
???????????????????限制通过POST方法可以接受信息的最大值,也就是整个POST请求的提交值。此值必须大于upload_max_filesize
???????????????????整个表单的大小
???????upload_tmp_dir ?????????NULL ???上传文件存放的临时路径,可以是绝对路径。默认NULL则使用系统的临时目录。
???1.2.2 $_FILES多维数组
???????[input的name]=>array(
???????????‘name’ ?????????=> ??????原文件的名字,
???????????‘type’ ?????????=> ??????文件mime类型
???????????‘tmp_name’ ?????=> ??????临时文件的路径
???????????‘error’ ????????=> ??????错误号 0表示上传成功
???????????‘size’ ?????????=> ??????文件的大小
???????)
???????error错误号:
???????????0 ??????????????表示上传成功
???????????1 ??????????????超过了 php.ini 中 upload_max_filesize 的限制
???????????2 ??????????????超过了 HTML 表单 中隐藏域设置的 限制
???????????3 ??????????????文件只有部分被上传
???????????4 ??????????????文件没有上传
???????????6 ??????????????找不到临时目录
???????????7 ??????????????文件写入失败
???1.2.3 常见数据格式(MIME)
???????文件类型 ???????????????MIME类型
???????图片文件 ???????????????image/gif,image/jpg,image/jpeg,image/png,image/x-png
???????纯文本和HTML ???????????text/txt,text/plain,text/html
???????二进制文件 ??????????????application/octet-stream
???????音频格式 ???????????????audio/basic
???????视频格式 ???????????????video/mpeg
???1.2.4 PHP文件上传处理函数
???????is_uploaded_file()
???????move_uploaded_file()多文件上传
使用不同的表单元素<input type="file" name="file_a">
???<input type="file" name="file_b">
???<input type="file" name="file_b">
使用数组格式的表单元素<input type="file" name="file[]">
???<input type="file" name="file[]">
???<input type="file" name="file[]">
HTML5指定inputd的属性<input type="file" name="file[]" multiple>
文件下载
//获取服务器要下载文件的路径$filename="./upload/aa.png";
//获取文件的文件名
$basename=pathinfo($filename);
//指定下载文件类型的
header("Content-Type: image/png")
;//设置head头信息,告知该文件时下载附件并且制定客户端临时存储名称
header("Content-Disposition:attachment;filename=". $basename["basename"])
;
//指定下载文件的描述信息
//指定文件大小的header("Content-Length:".filesize($filename));
?//将内容输出,以便下载。
readfile($filename);
文件上传
原文地址:http://www.cnblogs.com/yolo-bean/p/7739497.html