这篇文章主要介绍了关于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异步处理-上传文件相关推荐

  1. ftp服务器上传文件不行,ftp服务器上传文件不行

    ftp服务器上传文件不行 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务器 ...

  2. 个人上传文件进服务器,个人上传文件进服务器

    个人上传文件进服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装数据传 ...

  3. 上传文件按钮美化,上传文件前后状态控制

    我们在做input文本上传的时候,html自带的上传按钮比较丑,如何对其进行美化呢?同理:input checkbox美化,input radio美化是一个道理的. input file上传按钮的美化 ...

  4. html 保存文件指定路径,78.上传文件及在服务器保存文件到任意路径

    上传文件到服务器是一个常用的操作,而在服务器上保存文件就需要多多用心了.因为你不可能只在一个路径里保存文件,所以需要实践一下保存文件到任意位置.当然,前提是你的应用程序有这样的操作权限. 首先建立一个 ...

  5. 爬虫之上传文件,request如何上传文件

    爬虫之上传文件,request如何上传文件,当我们遇到需要上传文件的接口时,如何破解上传文件的密码呢? 如图,文件的参数名files[],传输多张图片,那如何用python实现呢? 1.方法1:使用r ...

  6. nginx 限制文件上传速度_nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 - 硬件设备 - 服务器之家...

    nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 发布时间:2017-03-09 来源:服务器之家 下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案. 因为应用服务器(Jett ...

  7. Android Studio App开发之下载管理器DownloadManager中显示、轮询下载进度、利用POST上传文件讲解及实战(附源码)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一.在通知栏显示下载进度 利用GET方式读取数据有很多缺点比如1:无法端点续传 一旦中途失败只能重新获取 2:不是真正意义上的下载操作 无法设置参 ...

  8. JSP 文件上传下载系列之一[基本方式上传文件]

    前言 在jsp的web项目中,很有可能会使用文件上传的功能. 把一个本地的文件上传到web 服务器的某个路径下. 对于java 来说, 实现这样功能的开源组件有很多, 比如较常用的commons-fi ...

  9. ftp 站点的创建实现文件的上传和下载 以及 ftp没有权限上传文件(错误:200 Type set to I)

    当你已经配置好iis. 步骤: 一:随便在一个盘下创建一个文件bb(文件名可以自己取)我的在:D:\bb 二:进入iis 接着: 接着下一步: 接着下一步: 然后点击完成 三:进入D:\bb,新建一个 ...

  10. linux非root上传文件,root账号无法上传文件到Linux服务器

    普通权限的账号,通过ftp工具,可以正常连上Linux服务器,可以正常上传文件.但是root账号却无法上传文件. 网上搜了半天才知道,默认情况下vsftp是不允许root用户登录的,可以通过修改限制来 ...

最新文章

  1. apktoolkit apk反编译没有文件_重新编译mono——修改apk中Assembly-CSharp.dll并重新打包...
  2. golang内置接口error
  3. Spring Cloud——基于Dubbo的分布式Session解决方案
  4. Android App列表之游标ListView(索引ListView)
  5. va_list va_start va_end的使用
  6. css 背景属性 0302
  7. GitHub开源项目 - Jeecg-Boot开始开发平台介绍
  8. 走上这条路,也许是缘份
  9. enspar启动失败40_适合烘焙新手第一次做的芝士面包,简单易上手,好吃松软零失败...
  10. 优化数据库的思想及SQL语句优化的原则
  11. Java ResultSet教程
  12. 视频应用在区块链上的应用
  13. 热血传说复古传奇老显示服务器维护,《复古传奇之热血传说》新系列地图,新的装备即将出现...
  14. UE 材质编辑器快捷键
  15. Oracle数据库中文排序问题记录
  16. 神战奇迹私服进游戏选择服务器显示数字,最新mu手游奇迹sf发布
  17. K8S Pod该如何监控
  18. Flutter实战01 - 启动页 闪屏广告 引导页
  19. 将一个整数分解为质数的乘积
  20. [ros robot] --- 机器人系统仿真

热门文章

  1. 继苹果亚马逊之后 微软加入1万亿美元市值俱乐部
  2. 华为P30现身华为新加坡官网:坐实水滴屏
  3. 库克:苹果公司将增加培训教育领域的投入
  4. 放弃治疗式宣传?Kindle官方自我调侃:盖Kindle 面更香
  5. 3198元起!vivo X27/X27 Pro发布 升降摄像头+4800万三摄
  6. 张一鸣回忆7年创业历程:小民宅里诞生第一版推荐引擎
  7. 世界500强牛企英语面试精彩问答
  8. 安装mysql 5.7.19 winx64解压缩版
  9. 螺旋千斤顶设计大作业_如何正确使用汽车千斤顶,新手司机看过来,老司机教你正确用法...
  10. 解决linux系统WIFI无法使用5GHz频率的问题