【问题标题】:Upload Base64 to S3将 Base64 上传到 S3
【发布时间】:2015-05-01 21:55:06
【问题描述】:

我正在尝试在不使用输入或 html 表单的情况下将图像上传到 S3。

我想要的过程如下:合并两个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?

【问题讨论】:

    标签: javascript php html canvas amazon-s3


    【解决方案1】:

    您可以通过 Ajax 将 base64 字符串发送到您的服务器(到 php 文件)

    jQuery 有一个功能:https://api.jquery.com/jquery.ajax/

    【讨论】:

      猜你喜欢
      • 2018-05-05
      • 2014-06-26
      • 2017-08-01
      • 1970-01-01
      • 2022-08-20
      • 2020-02-19
      • 2013-08-27
      • 1970-01-01
      • 2016-04-14
      相关资源
      最近更新 更多