我通过AJAX调用PHP脚本,在本地保存远程图像(通过Mapbox API)。一切都很好,除了result
包括一个'空间' (filename.jpg[space]
)在字符串的末尾。
Javascript:
var mapboxUrl = 'https://api.mapbox.com/v4/motioncrafter.96d11990/' + longitude + ',' + latitude + ',11/1280x720@2x.jpg80?access_token=pk.eyJ1IjoibW90aW9uY3JhZnRlciIsImEiOiJjaWg2dHJvM2YwNndudjJrdGI2amUzdnlyIn0.oN201-rjUC4DHhz7QhGJRA';
$.ajax({
type: "POST",
url: "../../php/map.php",
data: {
map: mapboxUrl,
},
success: function(result) {
$('.video_map').val(result);
}
});
PHP:
<?php
$mapboxUrl = $_POST["map"];
$path = "../images/user-maps/";
$imageFile = $path . "map_wide_" . rand(10000, 99999) . time() . ".jpg";
$ch = curl_init($mapboxUrl);
$fp = fopen($imageFile, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
echo $imageFile;
?>
知道这个空间出现的原因吗?
答案 0 :(得分:0)
摆脱这条线:
?>
我怀疑你之后有空间。 <?php ... ?>
以外的所有内容都会发送到客户端,因此,如果它实际上是?><space>
,则该空间将附加到图像文件名中。
在脚本末尾不需要?>
,文件末尾会自动告诉PHP停止处理代码。