【发布时间】:2021-09-01 10:34:33
【问题描述】:
我通过 json 角度请求接收数据,但我没有 ($_FILES['name']['tmp_name']) 格式,所以我不能使用 move_uploaded_file()
WEB Json 数据
avatar {
contentType "application/pdf"
data "data:application/pdf;base64,JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyhlcy1DTykgL1N0cnVjdFRyZWVSb290IDMxIDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4vTWV0YWRhdGEgMjMyIDAgUi9WaWV3ZXJQcmVmZXJlbmNlcyAyMzMgMCBSPj4NCmVuZG9iag0KMiAwIG9iag0KPDwvVHlwZS9QYWdlcy9Db3VudCA0L0tpZHNbIDMgMCBSIDE3IDAgUiAyMiAwIFIgMjYgMCBSXSA+Pg0KZW5kb2JqDQozIDAgb2JqDQo8PC9UeXBlL1BhZ2UvUGFyZW50IDIgMCBSL1Jlc291cmNlczw8L1hPYmplY3Q8PC9JbWFnZTUgNSAwIFIvSW1hZ2U3IDcgMCBSPj4vRXh0R1N0YXRlPDwvR1M2IDYgMCBSL0dTMTAgMTAgMCB…Dg5NiAwMDAwMCBuDQowMDAwMzU4MDc2IDAwMDAwIG4NCjAwMDAzNTgxMjIgMDAwMDAgbg0KdHJhaWxlcg0KPDwvU2l6ZSAyMzUvUm9vdCAxIDAgUi9JbmZvIDMwIDAgUi9JRFs8MDlEM0VCOEI1NzE4NTg0MEIxMjA3MkEyMUM2RkNEOTg+PDA5RDNFQjhCNTcxODU4NDBCMTIwNzJBMjFDNkZDRDk4Pl0gPj4NCnN0YXJ0eHJlZg0KMzU4ODcyDQolJUVPRg0KeHJlZg0KMCAwDQp0cmFpbGVyDQo8PC9TaXplIDIzNS9Sb290IDEgMCBSL0luZm8gMzAgMCBSL0lEWzwwOUQzRUI4QjU3MTg1ODQwQjEyMDcyQTIxQzZGQ0Q5OD48MDlEM0VCOEI1NzE4NTg0MEIxMjA3MkEyMUM2RkNEOTg+XSAvUHJldiAzNTg4NzIvWFJlZlN0bSAzNTgxMjI+Pg0Kc3RhcnR4cmVmDQozNjM3MzINCiUlRU9G"
filename "manualversion1.pdf"
size 363915
}
descripPretensiones "gsdfgfgdfdgf"
fecFin "2021-06-17T05:00:00.000Z"
PHP
在这部分我没有任何尝试捕获的响应,没有错误或问题,但我的文件永远不会上传到我的文件夹
$data = json_decode(file_get_contents('php://input'), true);
$fileName= $data["avatar"]["filename"];
try {
if(move_uploaded_file(base64_decode($data['avatar']['data']), $finalRute)){
echo 'file update';
}
} catch (Exception $e) {
echo 'Excepción capturada: ', $e->getMessage(), "\n";
}
【问题讨论】:
-
首先
$data["avatar"]["data"]不是文件而是字符串。所以你必须先用file_put_cotents()创建文件,然后用rename()复制它。move_uploaded_file仅适用于存在于$_FILES中的上传文件 -
我认为
data:application/pdf;base64,部分仅用于在<img src中显示。我认为您不希望在文件中包含该内容。