Всем привет,
Нужно png-файл в виде 64-битной строки декодировать и отправить сабмитом формы
Делаю
var data = original_canvas.toDataURL(); // Источник данных fabrics js
alert("+++original_frnt_img_val::"+var_dump(data) ); // алер выводит +++original_frnt_img_val::data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACbAAAAbUCAYA ...
var decoded_data= data.replace(/data\:image\/png\;base64\,/g, "") // Убираем заголовок data:image/png;base64,
alert( "decoded_data::"+var_dump(decoded_data) ) // выводит decoded_data::iVBORw0KGgoAAAANSUhEUgAACbAAAAbUCAYAAAAkT...
var decoded_data= decode64(decoded_data) // декодируем
alert( "decoded_data::"+var_dump(decoded_data) ) // выводит http://imgur.com/QTM9o6q
alert( "ZZZ::"+var_dump( jQuery('#original_frnt_img_val').val() ) ) // Выводит ту же строку что и выше
var theForm = jQuery("#form_save_template_full_image");
theForm.submit(); // Сабмитим форму
Форма сабмититься и файл записывается на диск функцией file_put_contents без перекодировки и изменений но при попытке прочитать его получаю
Цитата
"Loading capture.png" failed
И открыв этот файл в текстовом редакторе я вижу принтскрин
Сравнивая этот файл с другими png-файлами в текстовом редакторе вижу что они не похожи
Изначально я отправлял 64-данные и на сервере делал перекодировку перед записью в файл:
$upload_front = file_put_contents( $capture_dest_filename , base64_decode( preg_replace("/data:image\/png;base64,/", '', $original_frnt_img_val ) ) );
Это работало но из-за того, что данные в 64-битной кодировке втрое болше занимают места - возникла проблема с большими файлами...
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
mstdmstd
Всем привет,
Нужно png-файл в виде 64-битной строки декодировать и отправить сабмитом формы
Делаю
var data = original_canvas.toDataURL(); // Источник данных fabrics js alert("+++original_frnt_img_val::"+var_dump(data) ); // алер выводит +++original_frnt_img_val::data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACbAAAAbUCAYA ...
var decoded_data= data.replace(/data\:image\/png\;base64\,/g, "") // Убираем заголовок data:image/png;base64, alert( "decoded_data::"+var_dump(decoded_data) ) // выводит decoded_data::iVBORw0KGgoAAAANSUhEUgAACbAAAAbUCAYAAAAkT... var decoded_data= decode64(decoded_data) // декодируем alert( "decoded_data::"+var_dump(decoded_data) ) // выводит http://imgur.com/QTM9o6q alert( "ZZZ::"+var_dump( jQuery('#original_frnt_img_val').val() ) ) // Выводит ту же строку что и выше var theForm = jQuery("#form_save_template_full_image"); theForm.submit(); // Сабмитим форму
Форма сабмититься и файл записывается на диск функцией file_put_contents без перекодировки и изменений но при попытке прочитать его получаю
И открыв этот файл в текстовом редакторе я вижу принтскрин
Сравнивая этот файл с другими png-файлами в текстовом редакторе вижу что они не похожи
Функция decode64 взята отсюда http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html
Я пробовал использовать atob вместо decode64 и тот же результат
Изначально я отправлял 64-данные и на сервере делал перекодировку перед записью в файл:
$upload_front = file_put_contents( $capture_dest_filename , base64_decode( preg_replace("/data:image\/png;base64,/", '', $original_frnt_img_val ) ) );
Это работало но из-за того, что данные в 64-битной кодировке втрое болше занимают места - возникла проблема с большими файлами...
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.