php文件上传与下载的配置

php.ini中文件上传功能配置选项说明
 
用文本工具(推荐EditPlus)打开php.ini 配置文件,查找 File Uploads ,在这个区域有以下3个选项:
 
file_uploads = On
 
是否允许HTTP文件上传。默认值为On允许HTTP文件上传,此选项不能设置为Off。
 
upload_tmp_dir =
 
文件上传的临时存放目录。如果没指定则PHP会使用系统默认的临时目录。该选项默认为空,此选项在手动配置PHP运行环境时,也容易遗忘,如果不配置这个选项,文件上传功能就无法实现,你必须给这个选项赋值,比如upload_tmp_dir = "d:/fileuploadtmp" ,代表在D盘目录下有一个fileuploadtmp目录,并且给这目录读写权限。
 
upload_max_filesize = 2M
 
上传文件的最大尺寸。这个选项默认值为2M,即文件上传的大小为2M,如果你想上传一个50M的文件,你必须设定 upload_max_filesize = 50M。
 但是仅设置upload_max_filesize = 50M 还是无法实现大文件的上传功能,我们还必须修改php.ini文件中的 post_max_size 选项。
 
继续在 php.ini 中查找 Data Handling ,在这个区域有1个选项:
 
post_max_size = 8M
 
指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M。如果POST数据超出限制,那么$_POST和$_FILES将会为空。
 要上传大文件,你必须设定该选项值大于upload_max_filesize选项的值,例如你设置了upload_max_filesize = 50M ,这里可以把post_max_size = 100M。
 另外如果启用了内存限制,那么该值应当小于memory_limit 选项的值。

 

下载功能

1.如果是其他文件,直接在a标签的href属性中填写路径,可以下载。

2.如果是一个图片文件,那么直接在a标签的href属性中,填写路径是不能进行下载。

那么需要进行以下操作步骤:

        PHP文件下载固定4句话:

    header("Content-type: application/octet-stream");

    header('Content-Disposition: attachment; filename="'. basename($path) .'"');

    header("Content-Length: ". filesize($path));

    readfile($path);

        所需的参数是:文件路径 

思路:创建Doc/download方法,在方法中获取要下载的文件路径,调用上面4句话进行下载 

 

 

  1.  修改文件下载地址,将文件的doc_id传递到download方法中 
{volist name="sourcelist" id="list"}
<div class="max-box">
    <div class="image-box"><img src="/images/{$list.image}"></div>
    <div class="text-box">
        <div class="text-left-box">
            <p>{$list.name}</p>
            <p>{$list.description}</p>
        </div>
        <div class="text-right-box">
            <a href="{:url('source/sourcedownload',['id'=>$list.id])}"
               class="btn btn-primary btn-sm shiny">
                <i class="glyphicon glyphicon-save"></i> 下载
            </a>
        </div>
    </div>
    <hr/>
</div>
{/volist}

 

  1.  创建Doc/download方法,接收doc_id,根据id查询对应的路径,再调用4句下载函数,进行下载操作。

 

function download(){

    //接收公文id    $id = I('get.id');

    //根据公文id查询对应的附件路径    $data = D('Doc')->field('doc_file')->find($id);

    $path = $data['doc_file'];

 

    header("Content-type: application/octet-stream");

    header('Content-Disposition: attachment; filename="'. basename($path) .'"');

    header("Content-Length: ". filesize($path));

    readfile($path);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值