我在画布和图像上使用 JS 做了一点尝试。它的最后一部分调用一个页面,一开始我尝试在服务器上写入最终图像。
该过程假设以前的文件存在,但不完整:
<?php
$filename = explode(".", $_POST["trans_file"]); // name of the image file
if (!unlink("transit/" . $_POST["trans_file"])) echo "File " . $_POST["trans_file"] . "not found!<br />"; // remove the partial file
$filesave = $filename[0] . ".png"; // I will save a PNG file
$filejpg = $filename[0] . ".jpg"; // but I will transform it into JPG
$data = $_POST["base64img_data"]; // here I receive the base64 image by a previous process
$data = explode(";", $data); // I remove the first part of it
$data = explode(",", $data[1]); // $data[1] now contains the base64 image complete
$image=base64_decode(chunk_split($data[1])); // $image is now a PNG file
$handle = fopen("transit/$filesave", "wb"); // Create a PNG file
fwrite($handle, $image); // write it
fclose($handle); // Close, and transform it into JPG
png2jpg("transit/$filesave", "transit/$filejpg", 100);
unlink("transit/$filesave"); // remove PNG image
我把它放在页面的开头,但浏览器总是显示前一个文件,一个在开头取消的文件,它本身就是一个 JPG。
很奇怪(对我来说)这个序列在一台服务器上运行良好,而不是在另一台服务器上运行!
我想这可能是页面内PHP和JS异步执行的情况。
如何同步服务器和浏览器?谢谢你。