php异步处理下载文件,php异步处理-上传文件
这篇文章主要介绍了关于php 异步处理-上传文件,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下// fsockopenpublic function testFsockeopen(){
$cookie = $_COOKIE;
$url = 'http://localhost/jtzn/src/server/index.php/Admin/Station/submitimp'; //异步触发的文件地址
$url_array = parse_url($url); //解析url
$port = isset($url_array['port']) ? $url_array['port'] : 80;
$errno = '';
$errstr = '';
$timeout = 30;
$fp = fsockopen($url_array['host'], $port, $errno, $errstr, $timeout); //开启
if (!$fp) {
return false;
} //模拟数据
$boundary = "----" . substr(md5(time()), 8, 16);
$data = "--$boundary\r\n";
foreach ($_FILES as $key => $file) {
$data .= "Content-Disposition: form-data; name=\"" . $key . "\"; filename=\"" . $file['name'] . "\"\r\n";
$data .= "Content-Type: " . $file['type'] . "\r\n\r\n";
$data .= file_get_contents($file['tmp_name']) . "\r\n";
$data .= "--$boundary--\r\n";
} //构建请求头
$header = "POST $url_array[path] HTTP/1.1\r\n";
$header .= "Host:$url_array[host]\r\n";
$header .= "Content-type:multipart/form-data; boundary=$boundary\r\n";
$header .= "Content-length:" . strlen($data) . "\r\n";
$_cookie = strval(NULL);
foreach ($cookie as $k => $v) {
$_cookie .= $k . "=" . $v;
}
$cookie_str = "Cookie: " . $_cookie . " \r\n"; //传递Cookie用于登录验证
$header .= $cookie_str;
$header .= "Connection:close\r\n\r\n";
$header .= $data;
fwrite($fp, $header); //不要接收服务器的返回 ,这样就不用等待了
fclose($fp);
echo json_encode(['msg' => 'ok', 'info' => '已经发起申请']);
}
public function testCurl(){
$url = 'http://localhost/jtzn/src/server/index.php/Admin/Station/submitimp';
$file = $_FILES['updataexcel2007'];
$post_data['updataexcel2007'] = curl_file_create(realpath($file['tmp_name']), $file['type'], $file['name']); //curl上传文件
$ch = curl_init();
$cookie = $_COOKIE;
$_cookie = strval(NULL);
foreach ($cookie as $k => $v) {
$_cookie .= $k . "=" . $v;
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//执行结果是否被返回,0是返回,1是不返回
curl_setopt($ch, CURLOPT_HEADER, 1);//参数设置,是否显示头部信息,1为显示,0为不显示
//表单数据,是正规的表单设置值为非0
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_COOKIE, $_cookie); //登录验证
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_exec($ch);
curl_close($ch);
echo json_encode(['msg' => 'ok', 'info' => '已经发起申请']);
}
以上就是本篇文章的全部内容了,更多相关内容请关注PHP中文网。
相关推荐:
实现php异步处理的方法
PHP异步进程async-helper实例详解
PHP异步执行的几种常用方式
php异步处理下载文件,php异步处理-上传文件相关推荐
- ftp服务器上传文件不行,ftp服务器上传文件不行
ftp服务器上传文件不行 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务器 ...
- 个人上传文件进服务器,个人上传文件进服务器
个人上传文件进服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装数据传 ...
- 上传文件按钮美化,上传文件前后状态控制
我们在做input文本上传的时候,html自带的上传按钮比较丑,如何对其进行美化呢?同理:input checkbox美化,input radio美化是一个道理的. input file上传按钮的美化 ...
- html 保存文件指定路径,78.上传文件及在服务器保存文件到任意路径
上传文件到服务器是一个常用的操作,而在服务器上保存文件就需要多多用心了.因为你不可能只在一个路径里保存文件,所以需要实践一下保存文件到任意位置.当然,前提是你的应用程序有这样的操作权限. 首先建立一个 ...
- 爬虫之上传文件,request如何上传文件
爬虫之上传文件,request如何上传文件,当我们遇到需要上传文件的接口时,如何破解上传文件的密码呢? 如图,文件的参数名files[],传输多张图片,那如何用python实现呢? 1.方法1:使用r ...
- nginx 限制文件上传速度_nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 - 硬件设备 - 服务器之家...
nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 发布时间:2017-03-09 来源:服务器之家 下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案. 因为应用服务器(Jett ...
- Android Studio App开发之下载管理器DownloadManager中显示、轮询下载进度、利用POST上传文件讲解及实战(附源码)
运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一.在通知栏显示下载进度 利用GET方式读取数据有很多缺点比如1:无法端点续传 一旦中途失败只能重新获取 2:不是真正意义上的下载操作 无法设置参 ...
- JSP 文件上传下载系列之一[基本方式上传文件]
前言 在jsp的web项目中,很有可能会使用文件上传的功能. 把一个本地的文件上传到web 服务器的某个路径下. 对于java 来说, 实现这样功能的开源组件有很多, 比如较常用的commons-fi ...
- ftp 站点的创建实现文件的上传和下载 以及 ftp没有权限上传文件(错误:200 Type set to I)
当你已经配置好iis. 步骤: 一:随便在一个盘下创建一个文件bb(文件名可以自己取)我的在:D:\bb 二:进入iis 接着: 接着下一步: 接着下一步: 然后点击完成 三:进入D:\bb,新建一个 ...
- linux非root上传文件,root账号无法上传文件到Linux服务器
普通权限的账号,通过ftp工具,可以正常连上Linux服务器,可以正常上传文件.但是root账号却无法上传文件. 网上搜了半天才知道,默认情况下vsftp是不允许root用户登录的,可以通过修改限制来 ...
最新文章
- apktoolkit apk反编译没有文件_重新编译mono——修改apk中Assembly-CSharp.dll并重新打包...
- golang内置接口error
- Spring Cloud——基于Dubbo的分布式Session解决方案
- Android App列表之游标ListView(索引ListView)
- va_list va_start va_end的使用
- css 背景属性 0302
- GitHub开源项目 - Jeecg-Boot开始开发平台介绍
- 走上这条路,也许是缘份
- enspar启动失败40_适合烘焙新手第一次做的芝士面包,简单易上手,好吃松软零失败...
- 优化数据库的思想及SQL语句优化的原则
- Java ResultSet教程
- 视频应用在区块链上的应用
- 热血传说复古传奇老显示服务器维护,《复古传奇之热血传说》新系列地图,新的装备即将出现...
- UE 材质编辑器快捷键
- Oracle数据库中文排序问题记录
- 神战奇迹私服进游戏选择服务器显示数字,最新mu手游奇迹sf发布
- K8S Pod该如何监控
- Flutter实战01 - 启动页 闪屏广告 引导页
- 将一个整数分解为质数的乘积
- [ros robot] --- 机器人系统仿真
热门文章
- 继苹果亚马逊之后 微软加入1万亿美元市值俱乐部
- 华为P30现身华为新加坡官网:坐实水滴屏
- 库克:苹果公司将增加培训教育领域的投入
- 放弃治疗式宣传?Kindle官方自我调侃:盖Kindle 面更香
- 3198元起!vivo X27/X27 Pro发布 升降摄像头+4800万三摄
- 张一鸣回忆7年创业历程:小民宅里诞生第一版推荐引擎
- 世界500强牛企英语面试精彩问答
- 安装mysql 5.7.19 winx64解压缩版
- 螺旋千斤顶设计大作业_如何正确使用汽车千斤顶,新手司机看过来,老司机教你正确用法...
- 解决linux系统WIFI无法使用5GHz频率的问题