您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman的http服务-请求-上传文件获取及http的413错误
发布时间:2021-12-05 11:40:56编辑:雪饮阅读()
- name为文件名字
- tmp_name为磁盘临时文件位置
- size为文件大小
- error为错误码
- type为文件mine类型。
- 上传文件大小受到defaultMaxPackageSize限制,默认10M,可修改。
- 请求结束后文件将被自动清除。
- 如果请求没有上传文件则返回一个空的数组。
首先呢我们在http中有一种不太常见的错误码就是413码,该码在post上传文件过大时候触发,如:
postman真棒:
postman在请求最右侧有个code点开后可以看到原生请求及各个开发语言的请求,这就很爽了不是。
获取上传文件
获取整个上传文件数组
$files = $request->file();
返回的文件格式类似:
array (
'avatar' => array (
'name' => '123.jpg',
'tmp_name' => '/tmp/workerman.upload.9hjR4w',
'size' => 1196127,
'error' => 0,
'type' => 'application/octet-stream',
),
'anotherfile' => array (
'name' => '456.txt',
'tmp_name' => '/tmp/workerman.upload.9sirSws',
'size' => 490,
'error' => 0,
'type' => 'text/plain',
)
)
其中:
注意:
接收到文件后最后要给客户端send一下内容,否则客户端一直拿不到响应头,就一直等待,实际上你已经接收到文件数组了。
实例如:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
use Workerman\Protocols\Http\Request;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('http://0.0.0.0:8484');
//设置上传包大小为100M,字节即byte,1kb=1024byte,1m=1024kb
TcpConnection::$defaultMaxPackageSize=100*1024*1024;
$worker->onMessage = function(TcpConnection $connection, Request $request)
{
$files = $request->file();
echo "\r\n";
echo "上传文件数组:\r\n";
var_dump($files);
echo "\r\n";
$connection->send("ok");
};
// 运行worker
Worker::runAll();
实例运行并由postman客户端上传了符合要求的文件时:
[root@localhost workerman]# php -c /usr/local/php734/lib/php/php.ini start.php start
Workerman[start.php] start in DEBUG mode
----------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
------------------------------------------ WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none http://0.0.0.0:8484 1 [OK]
---------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
上传文件数组:
array(1) {
["a"]=>
array(5) {
["name"]=>
string(8) "1080.flv"
["tmp_name"]=>
string(28) "/tmp/workerman.upload.jN2YHu"
["size"]=>
int(16873490)
["error"]=>
int(0)
["type"]=>
string(11) "video/x-flv"
}
}
关键字词:workerman,http,上传,文件,413
相关文章
- workerman的Timer定时器类的定时器注意事项-多进程的
- workerman的Timer定时器类的定时器注意事项-定时器id
- workerman的Timer定时器类的del方法实现定时器删除
- workerman的Timer定时器类的del方法实现定时器回调中
- workerman的Timer定时器类的add方法实现只在进程中的
- workerman的Timer定时器类的add方法实现匿名传参定时
- workerman的Timer定时器类的add方法实现定时器中销毁
- workerman的Timer定时器类的add方法实现定时器中销毁
- workerman的Timer定时器类的add方法实现定时器函数为
- workerman的Timer定时器类的add方法实现定时器函数为