PHP : 使用base64解码后如何正确使用pathinfo
PHP : How to properly use pathinfo after using base64 decode
我在使用 base64 解码图像后在路径信息中收到错误 Array to string conversion
。尝试将我的文件放入目录时发生错误。我需要维护图片的名称。
顺便说一句,我的图像文件来自 js DOM
var formG = new FormData();
for(var i=0; i<imageTrust.length;i++){
formG.append('file_multiImage[]', imageTrust[i]);
}
if(isset($_POST['file_multiImage'])){
$multi_image = $_POST['file_multiImage'];
foreach ($multi_image as $key => $value) {
$staticName = $event_id.'conNo'.$finalContestantNum;
$data = str_replace('data:image/jpeg;base64,', '', $value);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data);
$file = pathinfo( $staticName . PATHINFO_EXTENSION); //Error occurs here
file_put_contents($theDir.'/'. $file, $data);
}
}
数组结果
Array(
[0] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQA
[1] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAlgCWAAD
[2] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/7QC
)
//I did not just continue strings are too long
存在解析器无法检测到的语法问题。
$file = pathinfo( $staticName . PATHINFO_EXTENSION);
改为
$file = pathinfo( $staticName , PATHINFO_EXTENSION);
但是,您对 $file
的下一次使用似乎无效,为 file_put_contents()
调用创建了格式错误的文件名。通过指定 PATHINFO_EXTENSION
您只选择扩展名
文件名,似乎不存在。
我在使用 base64 解码图像后在路径信息中收到错误 Array to string conversion
。尝试将我的文件放入目录时发生错误。我需要维护图片的名称。
顺便说一句,我的图像文件来自 js DOM
var formG = new FormData();
for(var i=0; i<imageTrust.length;i++){
formG.append('file_multiImage[]', imageTrust[i]);
}
if(isset($_POST['file_multiImage'])){
$multi_image = $_POST['file_multiImage'];
foreach ($multi_image as $key => $value) {
$staticName = $event_id.'conNo'.$finalContestantNum;
$data = str_replace('data:image/jpeg;base64,', '', $value);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data);
$file = pathinfo( $staticName . PATHINFO_EXTENSION); //Error occurs here
file_put_contents($theDir.'/'. $file, $data);
}
}
数组结果
Array(
[0] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQA
[1] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAlgCWAAD
[2] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/7QC
)
//I did not just continue strings are too long
存在解析器无法检测到的语法问题。
$file = pathinfo( $staticName . PATHINFO_EXTENSION);
改为
$file = pathinfo( $staticName , PATHINFO_EXTENSION);
但是,您对 $file
的下一次使用似乎无效,为 file_put_contents()
调用创建了格式错误的文件名。通过指定 PATHINFO_EXTENSION
您只选择扩展名
文件名,似乎不存在。