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

  1. php异步处理下载文件,php异步处理-上传文件

    这篇文章主要介绍了关于php 异步处理-上传文件,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下// fsockopenpublic function testFsockeopen(){ ...

  2. SpringMVC MultipartFile 异步批量上传文件

    使用MultipartFile,前端通过异步方式提交,以上传图片做个简例,只介绍前端及处理层代码 需求简述: 1.spring配置 <bean id="multipartResolve ...

  3. 通过ajaxFileUpload异步请求上传文件(ajaxFileUpload+servlet实现文件上传下载)

    1.最终效果 实现选择图片(此处以图片为例,支持所有类型文件的上传),选择之后将选择的图片在页面中显示出来,点击上传,可以将文件上传到指定的地址中,上传成功后在当前页面自动显示下载标签. 源码下载地址 ...

  4. wordpress异步ajax上传文件

    分三步 1.建立表单 2.js获取表单数据,用formData打包,然后用ajax提交到admin-ajax.php(wordpress固定用法),最后通过php自定义函数php_upload处理 3 ...

  5. ajaxfileupload 返回值_ajaxFileUpload上传文件成功后却无法解析服务器返回的json数据...

    ajaxFileUpload是一款很好用的文件上传插件,网上也有很多关于它的版本,但在上传文件成功后想返回json数据给前台时,却会出现无法解析json数据的情况. 仔细调试发现其实在向服务器提交数据 ...

  6. java获取ajax上传的文件,Java使用Ajax异步上传文件

    相关代码示例: html代码片段: 名称 class="layui-input"> 描述 文件 请选择配置文件 立即提交 重置 js代码片段: //上传配置文件 $(&quo ...

  7. jQuery异步上传文件

    jQuery异步上传文件 我想通过jQuery异步上传文件,这是我的HTML: 1 2 3 <span>File</span> <input type="fil ...

  8. $.messager.progress ajax,ajax异步上传文件返回undefined

    ajax跨域上传文件,封装了一个上传文件的方法sendFilePost,上传文件的时候使用async: false同步上传就不会弹出等待框,返回的结果没问题,但是使用了异步的方法async: ture ...

  9. input[type=file] 异步上传文件

    背景 UI如图所示,其中有一个拍照图标,点击后要选择拍照或者从相册中选择要上传的图片. 拍照上传部分的代码如下 html部分 <div class="take-photo"& ...

最新文章

  1. Agile DSL Development in Ruby 笔记
  2. Java并发编程 Synchronized及其实现原理
  3. Scala基础教程(六):字符串、数组、集合
  4. MFC笔记2(控件位置调整)
  5. Flask爱家租房--房屋管理(搜索房屋列表)
  6. Idea 依赖冲突一分钟解决2种方案
  7. 入侵检测技术目的-发现黑客
  8. Head First SQL Your Brain on SQL读书笔记
  9. 17家中国初创IT公司的失败史【转】
  10. 经典的同步/互斥问题—哲学家进餐
  11. 下载整个网站 有什么工具可以下载整个网站的内容吗?
  12. 音乐原唱伴唱卡拉ok模式解决!
  13. alpha测试和beta测试
  14. ANSYS|workbench输出梁的剪力图和弯矩图
  15. C语言中,strlen()函数与sizeof()运算符的区别以及用法区别
  16. AcWing 278. 数字组合
  17. Java 集合深入理解(10):Deque 双端队列
  18. PHP计算两个日期相差的天数方法详解
  19. 李彦宏:一个人的百度
  20. 双十二,WAVE SUMMIT+2021峰会亮点抢先看!

热门文章

  1. EveryEeek English(9.21)
  2. C#WebApi路由机制详解
  3. 驱动人生2008_驱动人生致敬深圳经济特区建立四十周年!
  4. 程序员基本功10栈和队列
  5. matlab与树莓派通信
  6. python selenium_Python+selenium自动化测试
  7. java el表达式 导航规则_javaweb之EL表达式语言
  8. leetcode 两数相加c++_167. 两数之和 II - 输入有序数组
  9. Android开发编码规范pdf文件下载
  10. calayer动画总结(一)