TP框架实现文件的下载(主要解决文件存在中文文件名的问题)

namespace Home\Controller;
use Think\Controller;
use Org\Net\Http;
class IndexController extends Controller {

    public function index(){
           $file_id = I( ‘get.file_id‘ , 0 );
           if( $file_id == 0 ){
                  $this -> error( ‘文件不存在‘ );
           }
           $db_file = M( ‘file‘ );
           $condition [ ‘file_id‘ ] = $file_id;
           $file_result = $db_file -> where( $condition ) -> find( );
           if( empty( $file_result ) || ! file_exists( $file_result[ ‘file_path‘ ] ) ){
                  $this -> error( ‘文件不存在‘ );
           }
           $showname = $file_result[ ‘show_name‘ ];
           $ext_arr = explode( ‘.‘ , $file_path );
           $showname .= ‘.‘.$ext_arr[ count( $ext_arr ) -1 ];
           $encoded_filename = urlencode( $showname );
           $encoded_filename = str_replace( "+" , "%20" , $encoded_filename );
           Http::download( $file_result[ ‘file_path‘ ] , $showname );
    }

}
时间: 2024-11-08 21:49:47

TP框架实现文件的下载(主要解决文件存在中文文件名的问题)的相关文章

解决NTKO Office中文文件名保存到服务器时出现乱码的问题

再使用NTKO office控件时,在ntko往服务器提交文件时,中文文件名会出现乱码的问题! 其实解决这个问题可以换一种思路,在ntko往服务器提交文件时英文肯定是不会出现乱码的问题的! 那么想办法把中文文件名转换成英文放到隐藏域里,然后提交到服务器时再把隐藏域的英文转换成中文就没有问题了! 接下来就简单了 把中文名进行base64编码存到隐藏域 然后服务器获取隐藏域的值,再用base64解码就能得到正确的中文文件名了!附Base64简单编码解码 1 public string EncodeB

TP框架基础

什么框架:一堆代码的集合,里边有变量.函数.类.常量,里边也有许多设计模式MVC.AR数据库.单例等等. 为什么使用框架:框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次. thinkphp 3.2版本 ThinkPHP文件: [框架项目部署] 部署一个Shop项目,使用tp框架,步骤: 1.创建入口文件:在ThinkPHP目录下创建一个入口文件index.php 2.应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0

tp框架基础(详细步骤分解,易懂)下

在浏览器中如果要访问操作方法的时候以什么方式来访问 有四种方式 第一种是get方式,第二种是访问路径 这四种方式我们可以通过修改配置文件来改掉url的模式 我们需要来改一下我们的配置文件 在这个路径下来改配置,打开这个文件 改什么配置呢 再打开这个路径下的文件 找到这个文件url打头的 把这句话复制一下,把它拿到我们自己的配置文件里粘贴 在这里面进行修改 这里有个数字,代表我们的访问模式,如果是0的话,就是普通方式,get方式,如果改1的话,就是路径模式,如果改2的话就是重写模式,如果是3的话就

tp框架基础知识

作者:黄力军 index.php入口文件:作用,所有tp框架里的内容要想访问文件.都要走index.php文件他是整个程序的入口 Application代表应用程序的目录   所有写的应用程序放这里 Public公用目录   里面放公用的东西比如css js ThinkPHPtp框架核心文件夹.Thinkphp核心文件夹里分为如下 ThinkPHP.php是tp框架的核心类 Common里面存放tp框架里面的函数方法 Conf文件夹里面要注意*代表配置文件特别是convention 文件tp框架

TP框架数据没模型

1.TP框架的数据模型需要建在Model文件夹下: 1.数据模型 与控制器相似,但是每个数据模型控制一张数据表. 2.数据模型可写可不写,如果不写 则沿用父类数据模型. 2.访问数据库: 1.更改数据库配置: 2.访问数据库的三种方式: 原文地址:https://www.cnblogs.com/davis16/p/9003114.html

JAVA代码时间SFTP文件的下载

参考文章:http://blog.csdn.net/smallerpig/article/details/50976191 SFTP文件的下载与FTP文件的下载差别较大,需要下载jsch-0.1.54jar包 package com.cd.util; import com.jcraft.jsch.JSchException; public class SftpDownloadTestScript { public static void main (String[] args)throws JS

mvc上传,下载,浏览文件功能(用uploadify插件)

类 public class UpLoadFileController : Controller { // // GET: /UpLoadFile/ public ActionResult Index() { return View(); } /// <summary> /// 上传文件[上传文件到UploadFiles文件夹] /// </summary> /// <param name="fileData"></param> ///

解析FTP服务(文件的下载、上传)

FTP服务和文件共享服务的区别在于,文件共享服务只可以用于局域网,而FTP服务既可以用于局域网也可以用于广域网.如何搭建FTP: 第一步:服务管理器第二步:点击添加角色第三步:选择Web服务第四步:在角色服务界面添加FTP服务器(如果不添加此服务则无法使用FTP功能)第五步:点击安装(操作如下)进入服务管理器IIS管理器第一步:右键点击服务器第二步:选择添加FTP站点第三步:输入站点名称(例:yun),选择路径:E:\yunsit作为站点供上传和下载(此文件夹提前创建好)第四步:绑定和SSL设置

Linux wget下载https类型文件报错解决方法 转自老左博客

原文链接:http://www.laozuo.org/3648.html 一般我们远程调用下载文件直接用wget就可以,一般文件路径类型是http.如果有遇到是https就会下载出错,稍微不注意的新手朋友可能还认为是数据源出现问题.因为大脑不好用,所以刚才在有遇到这样问题的时候老左就顺带做一个记录,以便下次遇到这样的问题,以及有遇到同类问题的网友可以参照使用. 出现的错误大同小异类似上面的界面演示一样.其实我们仔细根据提示可以解决问题,只需要在wget后面加上--no-check-certifi