[英]Upload Base64 to S3
我正在嘗試將圖像上傳到S3,而不使用輸入或html表單。
我期望的過程如下:合並兩個HTML畫布,轉換為base64,下載為圖像,通過電子郵件發送圖像,上傳到S3。 我當前的代碼如下:
function convertImage() {
var bottleCanvas = document.getElementById('bottleCanvas');
var designCanvas = document.getElementById('editorCanvas');
var bottleContext = bottleCanvas.getContext('2d');
if($('.colourCanvas500').is(':visible')) {
bottleContext.drawImage(designCanvas, 153, 250);
}
else if($('.colourCanvas600').is(':visible')) {
bottleContext.drawImage(designCanvas, 155, 238);
}
else if($('.whiteCanvas500').is(':visible')) {
bottleContext.drawImage(designCanvas, 132, 235);
}
else if($('.whiteCanvas600').is(':visible')) {
bottleContext.drawImage(designCanvas, 132, 235);
}
var data = bottleCanvas.toDataURL("image/png");
var link = document.createElement('a');
link.download = "bottle-design.png";
var dataLink = bottleCanvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
//document.write(dataLink);
link.href = dataLink;
link.click();
$('#imageInput').val(data);
$('form[name="bottleDetails"]').submit();
}
我使用以下代碼將徽標從文件上傳到S3:
<?php
include('php/image_check.php');
$msg='';
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$name = $_FILES['file']['name'];
$size = $_FILES['file']['size'];
$tmp = $_FILES['file']['tmp_name'];
$ext = getExtension($name);
if(strlen($name) > 0)
{
if(in_array($ext,$valid_formats))
{
if($size<(2048*2048))
{
include('php/s3_config.php');
//Rename image name.
$actual_image_name = time().".".$ext;
if($s3->putObjectFile($tmp, $bucket , $actual_image_name, S3::ACL_PUBLIC_READ) )
{
$s3file='http://'.$bucket.'.s3.amazonaws.com/'.$actual_image_name;
session_start();
$_SESSION['uploadedImage'] = $s3file;
header('Location: builder.php');
}
else
$msg = "S3 Upload Fail.";
}
else
$msg = "Image size Max 2 MB";
}
else
$msg = "Invalid file, please upload image file.";
}
else
$msg = "Please select image file.";
}
?>
我將如何使用不帶表單的PHP將base64 / canvas圖像上傳到S3?
您可以通過Ajax將base64字符串發送到服務器(到php文件)來完成此操作
jQuery為此提供了一個功能: https : //api.jquery.com/jquery.ajax/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.