这篇文章主要介绍了关于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中文网其他相关文章!

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。

PHP会话对应用性能有显着影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。