php利用header实现文件下载代码
例1
代码如下 | 复制代码 |
function download($file_url,$new_name=''){ |
例2
以下php代码可以解决:
代码如下 | 复制代码 |
<? if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){ echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit(); } $file_name=$_GET['FileName']; $file_dir=$_GET['FileDir']; $FileId=$_GET['FileId']; $file_dir = $file_dir."/"; if (!file_exists($file_dir.$file_name)) { //检查文件是否存在 echo "文件找不到"; exit; } else { $file = fopen($file_dir . $file_name,"r"); // 打开文件 // 输入文件标签 Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Accept-Length: ".filesize($file_dir . $file_name)); Header("Content-Disposition: attachment; filename=" . $file_name); // 输出文件内容 echo fread($file,filesize($file_dir . $file_name)); fclose($file); exit(); } ?> |
直接下载文件
代码如下 | 复制代码 |
<?php $file = get_file_address();// 文件的真实地址(支持url,不过不建议用url) if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } ?> |
小提示,header函数不只是可以实现文件下载,他还有很多的功能哦,如发送404,301等等状态信息都是可以的哦。
注意:在使用header之前我们必须在header之前没有任何输出,否则就会报错。
小编来给大家介绍在php中删除指定数组元素与删除空数组的实例代码与方法,有需要了解的朋友可进入参考参考。。php删除数组指定元素可以通过以下两种方法实现:
1、遍历数组,然后判断元素的值是否指定值,如果是则用unset()删除。示例代码如下:
代码如下 | 复制代码 |
//$var是要删除的元素值,$array是目标数组; |
2、使用array_flip()函数,该函数的作用是将键名和值反转。示例代码如下:
代码如下 | 复制代码 |
<?php |
删除数组中的空元素
实例:
代码如下 | 复制代码 |
<?php 结果: Array ( [a] => abc [b] => bcd [c] => cde [d] => def ) |
去除数组中的空元素以及重复元素
代码如下 | 复制代码 |
<?php $array = array('2',19,33,88,2,4,5,5,99,99,'',33,''); ?> |
解决方法:
如果你有服务器管理权限,那自然是更好了,我们直接在php.ini下分别对 upload_max_filesize , memory_limit 和 post_max_size进入设置了。
如我的配置
upload_max_filesize = 1200M
memory_limit = 2048M
post_max_size = 1200M
然后重启apache或iis就可以了
如果你没有服务器管理权限,我们还有一个解决办法
phpMyAdmin-3.1.0-all-languages为例,我的安装目录E:/wwwroot/phpMyAdmin/
1.在 phpmyadmin目录里新建一个目录 upload.
2.打开phpmyadmin,找到E:/wwwroot/phpMyAdmin/config.sample.inc.php文件,找到并修改为 $cfg['UploadDir'] = “upload”; 然后点保存.
再打开E:/wwwroot/phpMyAdmin/libraries/config.default.php文件,找到并修改为 $cfg['UploadDir'] = “upload”; 然后点保存.
3.用 FTP 上传 需要导入的sql 文件到 phpmyadmin/upload/ 下
4.访问 phpmyadmin,点击 Import(导入) ,就会出现选择服务器上的文件的下拉框,选择刚才用FTP上传的SQL文件。至此完美解决。
this,parent,self都是在php中的class类中了,下面我来分别介绍this,parent,self在类中用应用与区别有需要的朋友可参考。一,this
1,要用this,你必有是一个对像的形势,不然它会报错的,Fatal error: Using $this when not in object context。
2,this可以调用本类中的方法和属性,也可以调用父类中的可以调的方法和属性
代码如下 | 复制代码 |
< ?php |
我 们看,上面的类分别在11行和20行使用了this指针,那么当时this是指向谁呢?其实this是在实例化的时候来确定指向谁,比如第一次实例化对象 的时候(25行),那么当时this就是指向$nameObject对象,那么执行18行的打印的时候就把print( $this-><name )变成了print( $nameObject->name ),那么当然就输出了"heiyeluren"。
二,self
self是指向类本身,也就是PHP self关键字是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。
1,self可以访问本类中的静态属性和静态方法,可以访问父类中的静态属性和静态方法。
2,用self时,可以不用实例化的
代码如下 | 复制代码 |
< ?php |
三,parent
parent:: 可用于调用父类中定义的成员方法。
parent::的追溯不仅于直接父类。
通过parent::调用父类方法
代码如下 | 复制代码 |
<!-- 声明一个员工类,经理类继承自员工类 --> class Manager extends employee { $manager = new Manager(); |
parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。
在php中我们如果要上传到另一台服务器就需要利用php一个ftp功能,在php中提供了 ftp_connect来连接服务器,然后把我们上传的数据传到远程服务器哦,下面我来给各位朋友介绍。ftp_connect() 函数建立一个新的 FTP 连接。
若成功,则返回一个连接标识,否则返回 false。
语法
host 必需。规定要连接的 FTP 服务器。可以是域名或 IP 地址。
后面不应以斜线结尾,前面也不需要用 ftp:// 开头。
port 可选。规定 FTP 服务器的端口。
timeout 可选。规定该 FTP 服务器的超时时间。默认是 90 秒。
然后在台式机本地做了个测试:
代码如下 | 复制代码 |
$ftp_server = "192.168.1.100"; $ftp_user_name = "laohu"; $ftp_user_pass = "123456"; $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); $file = 'test.txt'; $remote_file = '/test/a.txt'; |
// 注意:这里的"/test"指的是ftp根目录下的test文件夹,而非系统跟目录下的
test
代码如下 | 复制代码 |
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) { |
运行后:文件移动成功。
要的就是这个效果了,之后用台式机做程序服务器,上传附件时全用ftp方法上传至笔记本上,笔记本ip是105,相
应代码如下:
代码如下 | 复制代码 |
if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) { if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) { |
对应的前台页面代码:
代码如下 | 复制代码 |
<form action="uploadfile.php" method="post" enctype="multipart/form-data"> |
运行后确实成功。
下面看一个ftp文件上传类
代码如下 | 复制代码 |
<?php |
调用代码
代码如下 | 复制代码 |
<? |
需要注意,在用ftp_put方法时,第四个参数传送模式,需要用FTP_BINARY(二进制模式),用FTP_ASCII(文本模式)
时,图片能上传但无法显示,其他文件重命名、中文乱码解决、上传权限控制等,就不在此提及了。
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
- 这篇文章主要介绍了Element PageHeader页头的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-27
- 这篇文章主要介绍了C#实现写入文本文件内容的方法,涉及C#针对文本文件的判断、创建及写入等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25