Anonymous
Как сделать ajax Post, не открывая страницу
Сообщение
Anonymous » 10 май 2024, 08:28
Я пытаюсь создать URL-адрес публикации Ajax с помощью toDataURL, вызов ajax выполняется в test.php. Моя функция сохранения находится в save.php. Моя проблема в том, что изображение можно сохранить, если я сначала открою test.php , тогда изображение появится в моем каталоге. Я хочу сохранить изображение при открытии save.php. Возможно ли это сделать?
test.php
Код: Выделить всё
function submitdata(){
var canvas = document.getElementById('chart1');
var imgData = canvas.toDataURL('image/png', 1);
$.ajax({
type: "POST",
url: "save.php",
data: { imgData: imgData },
success: function(response) {
console.log(response);
}
});
}
$(document).ready(function() {
submitdata();
});
save.php
Код: Выделить всё
function save_base64_image($base64_image_string, $output_file_without_extension, $path_with_end_slash="" ) {
$splited = explode(',', substr( $base64_image_string , 5 ) , 2);
$mime=$splited[0];
$data=$splited[1];
$mime_split_without_base64=explode(';', $mime,2);
$mime_split=explode('/', $mime_split_without_base64[0],2);
if(count($mime_split)==2)
{
$extension=$mime_split[1];
if($extension=='jpeg')$extension='jpg';
$output_file_with_extension=$output_file_without_extension.'.'.$extension;
}
file_put_contents( $path_with_end_slash . $output_file_with_extension, base64_decode($data) );
return $output_file_with_extension;
}
$image = $_POST['imgData'];
$path='images/chart_1';
save_base64_image($image, $path, $path_with_end_slash="" );
Я тоже пытаюсь использовать эту функцию
Код: Выделить всё
function save_base64_image($base64_image_string, $output_file_without_extension, $path_with_end_slash="" ) {
$splited = explode(',', substr( $base64_image_string , 5 ) , 2);
$mime=$splited[0];
$data=$splited[1];
$mime_split_without_base64=explode(';', $mime,2);
$mime_split=explode('/', $mime_split_without_base64[0],2);
if(count($mime_split)==2)
{
$extension=$mime_split[1];
if($extension=='jpeg')$extension='jpg';
$output_file_with_extension=$output_file_without_extension.'.'.$extension;
}
file_put_contents( $path_with_end_slash . $output_file_with_extension, base64_decode($data) );
return $output_file_with_extension;
}
$image = $_POST['imgData'];
$x1= chr(rand(0,25)+97) ;
$x2= chr(rand(0,25)+97) ;
$x3= chr(rand(0,25)+97) ;
$x4= chr(rand(0,9)+48) ;
$x5= chr(rand(0,9)+48) ;
$path = 'images/';
$filename = $path . 'chart1_' . $x1 . $x2 . $x3 . $x4 . $x5.'.png';
save_base64_image($image, $path, $filename);
мое изображение сохраняется, когда я открываю save.php, но мое изображение ничего не содержит (пусто).
Подробнее здесь:
https://stackoverflow.com/questions/784 ... n-the-page
1715318922
Anonymous
Я пытаюсь создать URL-адрес публикации Ajax с помощью toDataURL, вызов ajax выполняется в test.php. Моя функция сохранения находится в save.php. Моя проблема в том, что изображение можно сохранить, если я сначала открою test.php , тогда изображение появится в моем каталоге. Я хочу сохранить изображение при открытии save.php. Возможно ли это сделать? test.php [code]function submitdata(){ var canvas = document.getElementById('chart1'); var imgData = canvas.toDataURL('image/png', 1); $.ajax({ type: "POST", url: "save.php", data: { imgData: imgData }, success: function(response) { console.log(response); } }); } $(document).ready(function() { submitdata(); }); [/code] save.php [code]function save_base64_image($base64_image_string, $output_file_without_extension, $path_with_end_slash="" ) { $splited = explode(',', substr( $base64_image_string , 5 ) , 2); $mime=$splited[0]; $data=$splited[1]; $mime_split_without_base64=explode(';', $mime,2); $mime_split=explode('/', $mime_split_without_base64[0],2); if(count($mime_split)==2) { $extension=$mime_split[1]; if($extension=='jpeg')$extension='jpg'; $output_file_with_extension=$output_file_without_extension.'.'.$extension; } file_put_contents( $path_with_end_slash . $output_file_with_extension, base64_decode($data) ); return $output_file_with_extension; } $image = $_POST['imgData']; $path='images/chart_1'; save_base64_image($image, $path, $path_with_end_slash="" ); [/code] Я тоже пытаюсь использовать эту функцию [code]function save_base64_image($base64_image_string, $output_file_without_extension, $path_with_end_slash="" ) { $splited = explode(',', substr( $base64_image_string , 5 ) , 2); $mime=$splited[0]; $data=$splited[1]; $mime_split_without_base64=explode(';', $mime,2); $mime_split=explode('/', $mime_split_without_base64[0],2); if(count($mime_split)==2) { $extension=$mime_split[1]; if($extension=='jpeg')$extension='jpg'; $output_file_with_extension=$output_file_without_extension.'.'.$extension; } file_put_contents( $path_with_end_slash . $output_file_with_extension, base64_decode($data) ); return $output_file_with_extension; } $image = $_POST['imgData']; $x1= chr(rand(0,25)+97) ; $x2= chr(rand(0,25)+97) ; $x3= chr(rand(0,25)+97) ; $x4= chr(rand(0,9)+48) ; $x5= chr(rand(0,9)+48) ; $path = 'images/'; $filename = $path . 'chart1_' . $x1 . $x2 . $x3 . $x4 . $x5.'.png'; save_base64_image($image, $path, $filename); [/code] мое изображение сохраняется, когда я открываю save.php, но мое изображение ничего не содержит (пусто). Подробнее здесь: [url]https://stackoverflow.com/questions/78451989/how-to-make-ajax-post-without-open-the-page[/url]