2015-04-16 5 views
0

Я пытаюсь загрузить изображение на S3 без использования формы ввода или html.Загрузить Base64 в 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."; 

} 

?> 

Как бы я идти о загрузке моего base64/холст изображение на S3 с использованием PHP без формы?

ответ

Смежные вопросы