php执行file_put_contents后生成的文件如何自动下载到本地?

php执行file_put_contents后生成的文件如何自动下载到本地?,第1张

file_put_contents只能生成文件服务器上,无法读写客户端的文件系统,这是WEB的协议决定了的。

要想把file_put_contents生成在服务器上的文件发给浏览器用户,只有用下载的办法:文件生成到WEB可以访问的路径,然后使用<a href>建立链接让用户下载,示例代码:

file_put_contents('atxt', $str);

echo '<a href=atxt>下载文件</a>';

/

 @$url string 远程地址

 @$dir string 目录,可选 ,默认当前目录(相对路径)

 @$filename string 新文件名,可选

 /

function GrabImage($url, $dir='', $filename=''){

 if(empty($url)){

  return false;

 }

 $ext = strrchr($url, '');

 if($ext != 'gif' && $ext != "jpg" && $ext != "bmp"){

  echo "格式不支持!";

  return false;

 }

 

  //为空就当前目录

  if(empty($dir))$dir = '/';

//

 $dir = realpath($dir);

 //目录+文件

 $filename = $dir  (empty($filename)  '/'time()$ext : '/'$filename);

 //开始捕捉 

 ob_start(); 

 readfile($url); 

 $img = ob_get_contents(); 

 ob_end_clean(); 

 $size = strlen($img); 

 $fp2 = fopen($filename , "a"); 

 fwrite($fp2, $img); 

 fclose($fp2); 

 return $filename; 

//测试 

GrabImage("此处网址/1jpg", "asgif");

// PS:目录存在,权限判断,自创建等自己应该知道!

//个人喜欢绝对路径所以就那么写了

这种情况。 你既然可以把php关联到下载工具。 当然也可以删掉吧? 呵呵~

删掉就行~~

如果是直接在下载工具设置,不监视php,或关掉 监视下载地址的功能

还有一种超级简单的方法。。。 就是用雅虎助手之类的修复软件~ 修复一下注册表关联~~ 也可以手动到注册表里删除啊~~

开始、运行、regedit、然后在HKEY_CLASSES_ROOT里找php

如何安装PHP环境?

灯/LNMP环境建设

1检查系统环境

1确认centos版本

[root@localhost~]#cat/etc/redhat-release

2检查是否安装了apache

rpm-qagrephttpd

或者:

apachectl-v

或者:

httpd-v

3检查是否安装了Mysql

服务mysqld启动

如果无法识别,则不会安装。

如果系统已经安装,或者安装失败,请清洗系统。

4清理Mysql痕迹

yum删除mysql

rm-f/etc/mycnf

5卸载Apache包

rpm-qagrephttpd

注意:如果是新系统或者你从未尝试过安装,以上步骤省略。

二。安装Apache,PHP,Mysql

停止防火墙服务

[root@localhost~]#systemctl停止防火墙dservice

禁用防火墙启动服务。

[root@localhost~]#systemctl禁用防火墙dservice

1安装apache

[root@localhost~]#yum-y安装httpd

2安装php

[root@localhost~]#yum-y安装php

3安装php-fpm

[root@localhost~]#yum-y安装php-fpm

4安装Mysql

[root@localhost~]#yum-y安装mysql

5安装mysql-server

[root@localhost~]#yum安装mariadb-server

Centos7版本将mysql数据库软件从默认程序列表中移除,并替换为mariadb。在entos7的配置教程中,大多安装了mariadb,因为CentOS7默认将mariadb视为MySQL。

mysql被oracle收购后,原作者担心mysql的封闭源码,于是又写了一个mariadb,可以理解为mysql的一个分支。如果需要安装mariadb,用yum就可以了。

6安装php-mysql

[root@localhost~]#yum-y安装php-mysql

三。安装基本的通用扩展包

1安装Apache扩展包

yum-yinstallhttpd-manualmod_SSLmod_perlmod_auth_MySQL

2安装PHP扩展包

yum-y安装PHP-GDPHP-XMLPHP-mbstringPHP-LDAPPHP-pearPHP-xmlrpcPHP-devel

3安装Mysql扩展包

yum-y安装MySQL-connector-odbcMySQL-devellibDBI-DBD-MySQL

四。配置Apache和mysql来启动。

重启Apache和mysql服务(注意和centos6不一样,Cenots7不能用6)

systemCTLStarthttpdservice#StartApache

Systemctl停止httpdservice#停止apache

systemCTLRestarthttpdservice#RestartApache

Systemctlenablehttpdservice#设置apache启动

重新启动数据库

#开始MariaDB

[root@localhost~]#systemctl启动mariadbservice

#停止玛丽雅迪

[root@localhost~]#systemCTLstopMariadbservice

#重新启动MariaDB

[root@localhost~]#systemctl重新启动mariadbservice

#设置启动。

[root@localhost~]#systemCTLenableMariadbservice

动词(verb的缩写)配置Mysql

第一次安装mysql时没有密码。我们需要设置一个密码。mysql的默认帐户是root。

1:设置MySQL数据根帐户的密码:

[root@本地主机~]#mysql_secure_installation

出现以下提示时,直接按Enter键:

输入根用户的当前密码

再次输入,如下所示:

设置root密码?[是/否]

出现以下提示,要求输入您需要设置的密码。这里输入了root用户,但不显示密码。输入,然后再次输入进行确认:

新密码:

接下来,将有四个确认,即:

删除匿名用户?[是/否]

不允许远程root登录?[是/否]

是否删除测试数据库并访问它?[是/否]

现在重新加载权限表吗?[是/否]

只需按回车键。

2:输入mysqlmysql-rR。

要修改mysql密码:设置密码为根@本地主机=密码(根);

授权mysql远程连接(navicat等。):grantallon。到由根;

不及物动词测试环境

我们在浏览器的地址栏输入http://ip/

七。安装nginx

yum安装yum-优先级-y

wgethttp://nginxorg/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0el7ngxnoarchrpm

rpm-IVHnginx-release-centos-7-0el7ngxnoarchrpm

yum安装nginx

Nginx版本号可以更改http://nginxorg/packages/centos/7/noarch/RPMS/$版本。

八。配置nginx

1nginx启动、停止和重启。

systemCTLStartnginxservice#Startnginx

Systemctl停止nginxservice#停止

systemCTLrestartnginxservice#restart

Systemctlenablenginxservice#设置启动。

更改nginx端口号(根据自己的需要)

cd/etc/nginx/confd/

vim默认值conf

将听力80改为听力81

3访问http://ip:81可以看到nginx的主页。

当安装访问完成后,需要启动php-fpm。如果没有重新启动访问,将会出现下载文件。重新启动命令如下

Systemctl启动php-fpmservice#启动php-fpm

systemctlenablephp-fpmservice#设置启动

4更改nginx配置文件以识别php

VI/etc/nginx/confd/defaultconf,去掉前面的#就行了,方便改。

位置~。php${

根html

fastcgi_pass127001:9000;

fastcgi_indexindexphp;

fastcgi_paramSCRIPT_FILENAME/usr/share/nginx/html/$fastcgi_SCRIPT_name;

包括fastcgi_params

}

方法2安装nginx

yum安装nginx

启动nginx并设置为boot。

systemctl启动nginx

systemctl启用nginx

vim/etc/nginx/confd/defaultconf

5在/usr/share/nginx/html中创建新的testphp

请访问http://ip:81/testphp查看php页面

修改配置的时候记得启动apache和php-fpm!

九。负载配置

上游站点{

服务器17216170138;

服务器17216170139;

}

服务器{

听80;

server_name本地主机;

#charsetkoi8-r;

#access_log/var/log/nginx/log/hostaccesslogmain;

位置/{

root/usr/share/nginx/html;

索引indexhtmlindexhtm;

proxy_passhttp://site;

}

Apache默认目录/var/www/html

Ngx默认目录/usr/share/nginx/html

升级php版本

centos7的默认安装php是54

查看yum的可安装php版本列表。

yum提供php

开始升级PHP更新源:

rpm-Uvhhttps://mirrorwebtaticcom/yum/el7/epel-releaserpm

rpm-Uvhhttps://mirrorwebtaticcom/yum/el7/webtatic-releaserpm

Yumremovephp-common-y#移除系统自带的php-common。

Php72版本72

yuminstall-yPHP72wPHP72w-opcachePHP72w-XMLPHP72w-mcryptPHP72w-GDPHP72w-develPHP72w-MySQLPHP72w-intlPHP72w-mbstring

Php56版本56

yum-yPHP56WPHP56W-opcachePHP56W-XMLPHP56W-McryptPHP56W-GDPHP56W-DevelPHP56W-MySQLPHP56W-INTLPHP56W-MBString#安装依赖包

检查php版本

php-v

安装phpfpm:

yum安装php72w-fpm

Yum提供php-fpm#因为我要建lnmp,所以我会安装php-fpm。这里会提示您输入多个安装源。选择56版本的安装即可。

yuminstallPHP56w-fpm-5631-1w7x86_64-y

Systemctl启动php-fpmservice[start]

Systemctl启用PHP-fpmservice[启动和自启动]

Centyum有时会给出“无法检索mirrorlist”的解决方案——resolvconf的配置

原因:未配置resolvconf。

解决方法:

转到/etc目录配置resolvconf以加入名称服务器IP,例如:

8888域名服务器

8844域名服务器

搜索本地域

只需保存并再次运行上面的命令。

https://blogcsdnnet/mao834099514/article/details/73470001

Ngx目录:/usr/share/nginx/html

/etc/nginx/confd/defaultconfnginx配置目录

Apache目录:/var/www/html

/etc/httpd/conf/httpdconfApache配置文件

Nginx配置域名

cd/etc/nginx

cpdefaultconfimoocconf

修改服务器名imooctestcom和项目目录

配置虚拟域名windows访问需要将linuxip添加到主机

服务器名wwwninecom

DocumentRoot

选项索引跟随符号链接

全部覆盖

要求全部授权

关闭防火墙

setenforce0

要怎么实现两者的连接,可以用php搭建服务器么?

问题不太清晰,这里的连接是各种方式?

如果是普通的过去数据,进行api调用,那就在服务器搭建一个程序即可。

如果是长连接,可能需要起一个长连接服务,用php的话,就用swoole吧。

当然也可以用其他语言实现

php框架搭建方法?

php框架搭建步骤:

1项目初始化

首先我们在自己的web目录下创建我们的项目目录,我暂且把项目命名为hellovod,因此我的电脑目录就是:D:laragonwwwhellovod。在该目录下创建composerjson文件。

2添加入口文件

初始化完毕后,我们来配置入口文件。在hellovod目录下新建一个public文件夹,并在该文件夹下创建入口文件indexphp。

3添加路由功能

接下来,在hellovod目录下创建一个app文件夹,在app文件夹下新建routesphp。

4添加控制器模块

在hellovod/app目录下,创建Controllers文件夹,用来放置控制器文件。在该文件夹下创建控制器文件:IndexControllerphp。

5添加模型

当然,框架要能与数据库打交道,否则就没有灵魂。我们建立一个名为hellovod的数据库,再创建一个用户表:hw_user。

phpstorm怎么搭建运行环境?

phpstorm搭建运行环境方法如下

1打开PHPstudy进入“其他选项菜单”-“环境端口检测”-端口列表,随后点击PHPstudy运行界面的重启,查看网络状态-TCP监听端口,查看Apache的端口,我的这里是9096,网上一般说Apache端口默认是80,没错,但经常被占用。

2随后,我们来到phpstrom中修改phpstoram的默认设置,tools-Deploment-Configuration,如果第一次设置会没有,点击弹窗左上角“+”新建就好。

3端口被占用就是把localhost改成localhost:端口/地址/

4点击Mapping,进入设置。

5完成后保存退出,在点击右上角的小角标。

6找到PHPwebapplicantion,进入。也是没有就点击“”的那个新建。

7没有的新建,有的改数据,默认是80,80端口被占用就改成,我们看过的被分配好的端口号。

可以利用post方式提交表单,将文件上传到服务器上即可。上传到服务器的文件会存在临时目录下,然后利用move_uploaded_file函数可以将文件另存到其他目录进行永久保存,如果不另存,请求返回之后该临时文件就会删除,在服务器上再也找不到,如果需要该文件就需要重新上传。 另外,php是服务器端语言,是网页浏览的结果提交到服务器之后,服务器调用php进行处理。浏览器端请使用JavaScript语言处理上传前的操作。另外,由于安全性考虑,JavaScript是不能够读取用户硬盘上的数据的,不然你知道后果,任何一家网站都可以搞到你硬盘上的资料,就没有隐私可言了。 所以呢,还是将文件利用表单提交的方式上传到服务器,服务器端怎么处理,用什么处理都随你,php,python,c++都可以在服务器端处理了,毕竟传到服务器就是服务器的资源了。 页面文件上你可以用input标签浏览选择本地的文件,然后submit就能够上传文件。这是一个基本技术点,请你专门花点时间弄懂吧。

首先,运行PHP程序都有一个工作目录的。

你这样的情况,要么就是你上传的目录不在工作目录下。

或者服务器不支持PHP

希望这些能给你帮助。。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » php执行file_put_contents后生成的文件如何自动下载到本地?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情