我目前为同事编写的“ REST API”存在一些问题。 我们有一个用于上传图像的应用程序。为了将这些图像上传到Web服务器上,我创建了一个文件,该文件以BASE64编码的图像处理POST请求。
$request = http_build_query($_POST);
$size = strlen($request);
sc_log_add("imageupload","Size: $size"); //creates Log entry in Scriptcase
ini_set('display_errors', 'Off');
if(isset($_POST['image'])&&isset($_POST['path'])){
$path = $_POST['path'];
sc_log_add("imageupload","Datei: ".$path);
$_POST['image'] = str_replace(" ","+",$_POST['image']);
$exif = @exif_read_data('data://image/jpeg;base64,' . substr($_POST['image'], 0, 30000));
$orientation = ($exif)?$exif['Orientation']:1;
sc_log_add("imageupload","Orientation: $orientation");
$img = imagecreatefromstring(base64_decode($_POST['image']));
if($img != false){
//Create folder if not exists
$ordner = strstr($path, '/', true);
$mkdir = execute('../files','mkdir -p '.$ordner);
//Turn images based on orientation
if($orientation==3){$deg=180;} else if($orientation==6){$deg=270;} else if($orientation==8){$deg=90;} else {$deg = 0;}
$img = imagerotate($img, $deg, 0);
sc_log_add("imageupload","Image turned by $deg degrees");
//Resize image
$currwidth = imagesx($img);
if($currwidth>1200){
$img = imagescale ($img, 1200);
}
//Save image
imagejpeg($img, '../files/'.$path);
if(file_exists("../files/".$path)){ //Checks if file exists
$output= "11-OKAY";
sc_log_add("imageupload","11-OKAY");
} else {
$output= "17-File not generated: ".$fileexists." path:".$path;
sc_log_add("imageupload","17-File not generated");
}
} else {
$output= "23-Image Creation Error";
sc_log_add("imageupload","23-Image Creation Error");
}
} else {
$output= "1 - Missing Parameters";
$empty = (!isset($_POST['image']))?"Image empty":"";
$empty .= (!isset($_POST['path']))?"- path empty":"";
sc_log_add("imageupload","1 - Missing Parameters - ".$empty);
}
echo "##IUSTART##".$output."##IUEND##";
此脚本可能在95%的时间内都能正常工作,但有时会出现问题。与其他设备相比,我在某些设备上遇到问题的频率也更高。
有什么建议为什么会发生,我(或在应用程序上发送请求的同事)可能还是应该更改?