簡體   English   中英

Canvas無法保存服務器端PHP

[英]Canvas will not save server side PHP

我有一個畫布,需要將其保存到目錄並將URL存儲在數據庫中。

當我保存文件而不將URL存儲在數據庫中時,它可以正常工作,反之亦然。

但是,當我將兩者放在一起並通過AJAX指定PHP文件時,由於某種原因它無法識別會話變量?

當我嘗試在AJAX上調用“成功”時,什么都沒有顯示。 我沒有回應。

這可能是一個簡單的解決方法! 我想我盯着這段代碼已經太久了。

JavaScript:

function doodleSave() {
  var canvas = document.getElementById("doodle-canvas");
  var canvasData = canvas.toDataURL("image/png");

  $.ajax({
    url:'doodleupload.php', 
    type:'POST', 
    data:{ data:canvasData },
    success: function(response){
        alert(response);
        //echo what the server sent back...
    }
  });
}

PHP:

<?php
  session_start();

  /* AUTOMATED VARIABLES */
  $url             = md5(uniqid(rand(), true));
  $unique_user_id  = $_SESSION['unique_user_id'];
  $unique_post_id  = md5(uniqid(rand(), true));
  $timestamp       = time();
  $nature          = "doodle";
  $imageUrl        = $upload_dir.$url.'.png';

  $upload_dir = "images/external/doodles/";
  $img = $_POST['data'];
  $img = substr($img,strpos($img,",")+1);
  $data = base64_decode($img);
  $file = $upload_dir . $url . ".png";
  $success = file_put_contents($file, $data);

  echo $success ? $file : 'Unable to save the file.';

  require_once 'php/connect.php';

  try
  {

    $stmt = $pdo->prepare("INSERT INTO posts (unique_user_id, unique_post_id, nature, image_url, timestamp) VALUE (:unique_user_id, :unique_post_id, :nature, :image_url, :timestamp)");
    $stmt->bindParam(":unique_user_id",$unique_user_id);
    $stmt->bindParam(":unique_post_id",$unique_post_id);
    $stmt->bindParam(":nature",$nature);
    $stmt->bindParam(":image_url",$imageUrl);
    $stmt->bindParam(":timestamp",$timestamp);

    if($stmt->execute())
    {
      echo "File in database";
    }
    else
    {
      echo "Not in database";
    }
  }
  catch(PDOException $e){
    echo $e->getMessage();
  }

?>

在初始化之前,將$upload_dir頂部,就像您在調用它一樣。

$upload_dir = "images/external/doodles/";
$url             = md5(uniqid(rand(), true));
$unique_user_id  = $_SESSION['unique_user_id'];
$unique_post_id  = md5(uniqid(rand(), true));
$timestamp       = time();
$nature          = "doodle";
$imageUrl        = $upload_dir.$url.'.png';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM