gpt4 book ai didi

javascript - 保存图片url到Mysql数据库

转载 作者:搜寻专家 更新时间:2023-10-30 23:47:46 25 4
gpt4 key购买 nike

我有一个名为“mysqlproject”的数据库,其中包含两个表。我感兴趣的表之一是命名标记并在数据库中声明如下:

CREATE TABLE IF NOT EXISTS `markers` (
`id` int(11) NOT NULL,
`TitleEvent` varchar(60) NOT NULL,
`Description` varchar(80) NOT NULL,
`lat` float(10,6) NOT NULL,
`lng` float(10,6) NOT NULL,
`type` varchar(255) NOT NULL,
`status` varchar(30) NOT NULL,
`EventUserName` varchar(60) NOT NULL,
`PhotosEvent` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=73 ;

其中一列是 PhotosEvent,我想在其中保存照片的 url。所以我通过 javascript 文件捕获照片,然后通过 ajax 将其发送到 php 文件“camera.php”

ajax发送流程为:

$.ajax({
type: "POST",
url: "camera.php",
data: {
imgBase64: dataURL
}
}).done(function( respond ) {
// you will get back the temp file name
// or "Unable to save this image."
console.log(respond);
});

所以我使用 POST 方法将图像发送到文件“camera.php”。在 php 文件中,我正在拍摄该图像并首先将其保存在文件夹“EventImages”中的“本地服务器”中。好的,行得通..但我只想在事件 ID 所在的原始格式中将图像的 url 保存在“PhotosEvent”字段中的数据库中..

连接数据库:

$connection = mysql_connect('localhost', 'root', '');
if (!$connection) //Success $Connection with server returns 1
{
die("Database Connection Failed" . mysql_error());
}
else
{
//Connection with server established
}

// Try Connection with mysql Database
$select_db = mysql_select_db('mysqlproject');
if (!$select_db) //Success $Connection with Database returns 1
{
die("Database Selection Failed" . mysql_error());
}
else
{
//Connection with Database established
}

将图像以 .png 格式保存到文件夹(有效)并尝试将 url 保存到数据库(无效):

if ( isset($_POST["imgBase64"]) && !empty($_POST["imgBase64"]) ) {    

define('UPLOAD_DIR', 'EventImages/');

// get the dataURL
$dataURL = $_POST["imgBase64"];

// the dataURL has a prefix (mimetype+datatype)
// that we don't want, so strip that prefix off
$parts = explode(',', $dataURL);
$data = $parts[1];

// Decode base64 data, resulting in an image
$data = base64_decode($data);

// create a temporary unique file name
$file = UPLOAD_DIR . uniqid() . '.png';

// write the file to the upload directory
$success = file_put_contents($file, $data);

// return the temp file name (success)
// or return an error message just to frustrate the user (kidding!)
print $success ? $file : 'Unable to save this image.';

$results = mysql_query("INSERT INTO markers (PhotosEvent) WHERE id ='".$_SESSION['id']."'VALUES('$dataURL')");
}

我的问题是保存图像 url - 数据库路径。我怎样才能做到这一点?提前致谢..

最佳答案

找到了!

define('UPLOAD_DIR', 'EventImages/');
$img = $_POST['imgBase64'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);


$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';


$result=mysql_query("SELECT id FROM markers ORDER BY id DESC LIMIT 1");
while ($row = mysql_fetch_array($result)){
$LastInsertID=$row['id'];
}
$results = mysql_query("UPDATE markers SET PhotosEvent='".$file."' WHERE id = '".$LastInsertID."'");

现在它工作正常.. 我正在获取表标记中的最后一个已知 ID,并将图像的 url 保存在数据库中的变量 $file 中!!我还像以前一样将图像保存到 EventImages 文件夹!!

关于javascript - 保存图片url到Mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26069544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com