Minor clean-up; UTF-8 for SVG
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2667 eee81c28-f429-11dd-99c0-75d572ba1dddmaster
parent
a5083f0394
commit
1181de6847
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$allowedMimeTypesBySuffix = array(
|
$allowedMimeTypesBySuffix = array(
|
||||||
'svg' => 'image/svg+xml',
|
'svg' => 'image/svg+xml;charset=utf-8',
|
||||||
'png' => 'image/png',
|
'png' => 'image/png',
|
||||||
'jpeg' => 'image/jpeg',
|
'jpeg' => 'image/jpeg',
|
||||||
'bmp' => 'image/bmp',
|
'bmp' => 'image/bmp',
|
||||||
|
|
|
@ -38,11 +38,10 @@ svgEditor.addExtension("server_opensave", {
|
||||||
$('<iframe name="output_frame" src="#"/>').hide().appendTo('body');
|
$('<iframe name="output_frame" src="#"/>').hide().appendTo('body');
|
||||||
svgEditor.setCustomHandlers({
|
svgEditor.setCustomHandlers({
|
||||||
save: function(win, data) {
|
save: function(win, data) {
|
||||||
var svg = '<?xml version="1.0" encoding="UTF-8"?>\n' + data, // Firefox doesn't seem to know it is UTF-8 (if we skip the clientDownload code) despite the Content-Disposition header containing UTF-8, but adding the encoding works
|
var svg = '<?xml version="1.0" encoding="UTF-8"?>\n' + data, // Firefox doesn't seem to know it is UTF-8 (no matter whether we use or skip the clientDownload code) despite the Content-Disposition header containing UTF-8, but adding the encoding works
|
||||||
filename = getFileNameFromTitle();
|
filename = getFileNameFromTitle();
|
||||||
|
|
||||||
// if (clientDownloadSupport(filename, '.svg', 'data:image/svg+xml,' + encodeURI(data))) { // Firefox limits size of file
|
if (clientDownloadSupport(filename, '.svg', 'data:image/svg+xml;charset=UTF-8;base64,' + svgedit.utilities.encode64(svg))) {
|
||||||
if (clientDownloadSupport(filename, '.svg', 'data:image/svg+xml;base64,' + svgedit.utilities.encode64(svg))) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,7 +158,7 @@ svgEditor.addExtension("server_opensave", {
|
||||||
// Create image form
|
// Create image form
|
||||||
import_img_form = open_svg_form.clone().attr('action', import_img_action);
|
import_img_form = open_svg_form.clone().attr('action', import_img_action);
|
||||||
|
|
||||||
// It appears necessory to rebuild this input every time a file is
|
// It appears necessary to rebuild this input every time a file is
|
||||||
// selected so the same file can be picked and the change event can fire.
|
// selected so the same file can be picked and the change event can fire.
|
||||||
function rebuildInput(form) {
|
function rebuildInput(form) {
|
||||||
form.empty();
|
form.empty();
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
$prefix = '';
|
$prefix = '';
|
||||||
|
|
||||||
// Make Data URL prefix for import image
|
// Make Data URL prefix for import image
|
||||||
if($type == 'import_img') {
|
if ($type == 'import_img') {
|
||||||
$info = getimagesize($file);
|
$info = getimagesize($file);
|
||||||
if (!in_array($info['mime'], $allowedMimeTypesBySuffix)) {
|
if (!in_array($info['mime'], $allowedMimeTypesBySuffix)) {
|
||||||
exit;
|
exit;
|
||||||
|
@ -37,7 +37,8 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<script>
|
<script>
|
||||||
window.top.window.svgEditor.processFile("<?php
|
|
||||||
|
top.svgEditor.processFile("<?php
|
||||||
|
|
||||||
// This should be safe since SVG edit does its own filtering (e.g., if an SVG file contains scripts)
|
// This should be safe since SVG edit does its own filtering (e.g., if an SVG file contains scripts)
|
||||||
echo $prefix . base64_encode($output);
|
echo $prefix . base64_encode($output);
|
||||||
|
|
|
@ -20,7 +20,7 @@ function encodeRFC5987ValueChars ($str) {
|
||||||
|
|
||||||
require('allowedMimeTypes.php');
|
require('allowedMimeTypes.php');
|
||||||
|
|
||||||
$mime = !isset($_POST['mime']) || !in_array($_POST['mime'], $allowedMimeTypesBySuffix) ? 'image/svg+xml' : $_POST['mime'];
|
$mime = !isset($_POST['mime']) || !in_array($_POST['mime'], $allowedMimeTypesBySuffix) ? 'image/svg+xml;charset=UTF-8' : $_POST['mime'];
|
||||||
|
|
||||||
if (!isset($_POST['output_svg']) && !isset($_POST['output_img'])) {
|
if (!isset($_POST['output_svg']) && !isset($_POST['output_img'])) {
|
||||||
die('post fail');
|
die('post fail');
|
||||||
|
@ -52,7 +52,7 @@ header("Content-Disposition: attachment; filename*=UTF-8''" . encodeRFC5987Value
|
||||||
// preg_replace('@[\\\\/:*?"<>|]@', '', $file) // If we wanted to strip Windows-disallowed characters server-side (but not a security issue, so we can strip client-side instead)
|
// preg_replace('@[\\\\/:*?"<>|]@', '', $file) // If we wanted to strip Windows-disallowed characters server-side (but not a security issue, so we can strip client-side instead)
|
||||||
$file
|
$file
|
||||||
));
|
));
|
||||||
header("Content-Type: " . $mime . ';charset=utf-8');
|
header("Content-Type: " . $mime);
|
||||||
header("Content-Transfer-Encoding: binary");
|
header("Content-Transfer-Encoding: binary");
|
||||||
|
|
||||||
echo $contents;
|
echo $contents;
|
||||||
|
|
Loading…
Reference in New Issue