Сохранение холста в базе данных MySQL - PullRequest
1 голос
/ 02 января 2012

Я хочу сохранить свой холст в базе данных MySQL (ячейка BLOB). У меня есть функция в javaScript

    function saveCanvas(){
    var canvas = document.getElementById("canvas");

    var dataURL = canvas.toDataURL("image/png");
    dataURL = dataURL.replace(/^data:image\/(png|jpeg);base64,/, "");    
    var req = $.ajax({
        url: "Canvases",
        type: "Post",
        data: "operation=0&sessionId=" + readCookie('sessionId') + "&title=" + document.getElementById('imageNameTextbox').value + "&pic=" + dataURL,
        success: function(){
        }
    });
}

Затем я использую Java для хранения своего изображения

BASE64Decoder decoder = new BASE64Decoder();

 byte[] pic = decoder.decodeBuffer(request.getParameter("pic"));
 CanvasController.AddCanvas(sessionId, new CanvasModel(0, 0, request.getParameter("title"), pic));

И вставка в базу данных:

  String insertStatement = "INSERT INTO Canvas(userId, title, pic) VALUES (?, ?, ?);";
  prepStmt = connection.prepareStatement(insertStatement);
  prepStmt.setInt(1, id);
  prepStmt.setString(2, canvas.getTitle());
  prepStmt.setBytes(3, canvas.getPic());
  prepStmt.executeUpdate();

После запуска я всегда получаю пустое изображение в БД. Когда я меняю image / png на image / jpeg и рисую, например:

http://imageshack.us/photo/my-images/714/pobranec.jpg

Я получаю:

http://imageshack.us/photo/my-images/15/pobrane2q.jpg

Можете ли вы сказать, что я делаю неправильно?

1 Ответ

1 голос
/ 02 января 2012

Ваша строка данных не закодирована должным образом, что приводит к повреждению, когда данные получены на сервере и извлечены из тела сообщения.Измените data на следующее:

    data: {
       operation: 0,
       sessionId:  readCookie('sessionId'),
       title : document.getElementById('imageNameTextbox').value,
       pic: dataURL
    }

и позвольте jquery обработать кодировку для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...