无法打开流:HTTP 包装器不支持可写

Failed to open stream: HTTP wrapper does not support writeable

当我尝试使用 ajax 和 CI4 上传文件时,控制台出现此错误

 jQuery.ajax({
    url: "PassagerController/addInformation",
    method: "POST",
    data : new FormData(this),
    dataType:'json',
    contentType: false,
    cache: false,
    processData: false,

控制器:

 {
    $passager = new PassagerModel();
    $id = session()->get('telephone');
    $numcni = $this->request->getPost('numcni');
    $file = $this->request->getFile('rectocni');
    if ($file->isValid() && ! $file->hasMoved()) {
        $rectocni = $file->getRandomName();
        $file->move(base_url().'/public',$rectocni);
    }

然后我已经把 enctype=multipart/form-data

您收到错误消息是因为您试图通过 HTTP 打开文件并希望将其写入本地路径。删除“base_url()”并将其替换为本地路径。

由于您希望将文件存储在“public”目录下,您可以将代码更新为 -

if ($file->isValid() && ! $file->hasMoved()) {
    $rectocni = $file->getRandomName();
    $file->move(ROOTPATH.'public', $rectocni);
}

“ROOTPATH”是一个常量,具有项目根目录的路径。

将上传的文件存储在“public”目录中不是一个好习惯,而是将其放在“可写”下的子目录下。