我正在开发 Angular 4 应用程序,其中,我需要在表单提交时上传文件,为此我使用 ng2-file-upload 插件。但是我在上传文件时遇到了问题。我正在创建一个upload.php 文件来完成上传过程。upload.php 如下:
header("Access-Control-Allow-Origin: http://localhost:4200");
header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(array('status' => false));
exit;
}
$path = 'uploads/';
if (isset($_FILES['file'])) {
$originalName = $_FILES['file']['name'];
$ext = '.'.pathinfo($originalName, PATHINFO_EXTENSION);
$generatedName = md5($_FILES['file']['tmp_name']).$ext;
$filePath = $path.$generatedName;
if (!is_writable($path)) {
echo json_encode(array(
'status' => false,
'msg' => 'Destination directory not writable.'
));
exit;
}
if (move_uploaded_file($_FILES['file']['tmp_name'], $filePath)) {
echo json_encode(array(
'status' => true,
'originalName' => $originalName,
'generatedName' => $generatedName
));
}
}
else {
echo json_encode(
array('status' => false, 'msg' => 'No file uploaded.')
);
exit;
}
但我有以下错误:
加载http://localhost/uploads/uploads.php失败:对预检请求的响应未通过访问控制检查:响应中“Access-Control-Allow-Credentials”标头的值是“”,必须是当请求的凭据模式为“包含”时为“真”。因此,不允许访问源“ http://localhost:4200 ”。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。
如果有任何帮助,请建议我,提前谢谢!