Php使用json数据结构中的move_uploaded_file()



我通过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";
} 

在内存中,数据编码为base64。您将不得不采取措施将数据写入磁盘,而不是使用move_uploaded_file,后者是为将磁盘上的临时文件移动到不同位置而设计的。最简单的是file_put_contents。

类似于:

file_put_contents($finalRute, base64_decode(explode(',', $data['avatar']['data'])[1]));

根据AbraCadaver关于省略data:application/pdf;base64,的评论编辑的代码

相关内容

最新更新