好的,发现问题:
第一:尝试在控制器上调用上传函数时,直接在地址栏上,报错:
"Unable to load the requested file: upload.php"
正如我在跟踪 CI 日志文件时发现的那样,直接是由于没有为该函数发送文件造成的。
此外,由于某种原因,如果像这样加载,配置将不起作用:
$this->load->library('upload', $config);
必须像这样初始化配置:
$this->load->library('upload');
$this->upload->initialize($config);
那是错误一。
尽管如此,我的上传功能仍然无法正常工作。在我使用 angular 进行上传时调查了 firebug 控制台错误后,我发现了第二个问题:
A PHP Error was encountered
Severity: Warning
Message: escapeshellarg() has been disabled for security reasons
Filename: libraries/Upload.php
所以快速搜索堆栈溢出让我得到了答案:
$cmd = '文件 --brief --mime ' 。@escapeshellarg($file['tmp_name']) 。'2>&1';
从 system/libraries 文件夹打开 Upload.php 文件并将 @ 放在第 1066 行的 escapeshellarg($file['tmp_name']) 前面,然后将此文件上传到 application/libraries 文件夹下会更好,否则没问题,您可以替换系统的 Upload.php 文件
与escapeshellarg() 一样,出于安全原因已禁用
所以我手动更新了upload.php 文件,瞧。
毕竟,upload.php 需要一个补丁来解决服务器设置不兼容的问题。感谢大家。