使用 workerman 做的接口,上傳100多KB的小文件沒問題,上傳127MB的文件,接口就立即返回錯(cuò)誤,代碼沒報(bào)錯(cuò),終端也沒有任何輸出,接口報(bào)錯(cuò)如下圖:
本地php環(huán)境配置如下圖:
public function uploadFile() {
$type = request($this->request->post(), 'type', 'string|required|min:3|max:20');
if ($type === 'importData') {
$linkId = request($this->request->post(), 'link_id', 'int|required|min:1');
$db = request($this->request->post(), 'db', 'string|required|min:1|max:30');
}
if (empty($this->request->file('file'))) {
return $this->echoJson('文件不能為空', 404);
}
$code = md5($this->user['id'] . getClientTimeNow() . rand(100, 9999));
$save = '/tmp/' . PROJECT . '.' . date('YmdHis') . '.' . $code;
if (!rename($this->request->file('file')[0]['tmp_name'], $save)) {
return $this->echoJson('保存文件失敗', 404);
}
if ($type === 'importData') {
$result = ['file' => $save, 'link_id' => $linkId, 'db' => $db];
}
$this->{$type}($result);
}
ubuntu 20.04 workerman 4.1.16
上傳的文件大小默認(rèn)受限于 defaultMaxPackageSize,默認(rèn)為10M??梢栽?config/server.php 文件中通過修改 max_package_size 來更改這個(gè)默認(rèn)值。
謝謝,確實(shí),我只需要調(diào)大這一個(gè)參數(shù)的值就行,不過我用的是workerman,在Tcpconnection這個(gè)類里找到的這個(gè)變量,感覺有點(diǎn)不好的地方是啥提示都沒有,希望作者大佬改進(jìn)下,超過了這個(gè)值起碼給個(gè)提示什么的。
另外我這個(gè) 127MB的文件,上傳花了4.5分鐘,本地環(huán)境,感覺有點(diǎn)慢。