从流星应用程序发送base64图像

时间:2017-02-27 21:35:46

标签: javascript php meteor base64

我有一个流星应用程序,在这个应用程序中,我使用cropper plugin从网站上用户的本地计算机上传图像,然后将其发送到我的DigitalOcean服务器。所以从本地计算机上传工作,但当我尝试在我的服务器中发送图像时,它不起作用。

从cropper插件中,我检索了一个我要发送的imgbase64。

我在很多论坛上搜索,但我没有找到一个好的解决方案,所以我尝试这样做:

myapp.js我有:

    $("#save").click(function() {
    window.open($image.cropper("getDataURL"));
    var dataURL = $image.cropper("getDataURL");
    $.ajax({
          type: "POST",
          url: "script.php",
          data: { 
             imgBase64: dataURL
          }
        }).done(function(o) {
          console.log('saved'); 
          // If you want the file to be visible in the browser 
          // - please modify the callback in javascript. All you
          // need is to return the url to the file, you just saved 
          // and than put the image in your browser.
        });
});

myapp.html我有

 <button class="btn btn-primary" id="save" type="submit">Save</button>

我有一个PHP脚本:

<?php
    // requires php5
    define('UPLOAD_DIR', '/home/images/');
    $img = $_POST['img'];
    $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.';
    //header('Location: '.$_POST['return_url']);

?>

当我点击保存按钮时,我得到了#34;已保存&#34;在控制台中但我在文件夹中没有任何内容。 你知道为什么吗?

1 个答案:

答案 0 :(得分:0)

我担心您似乎没有正确使用Meteor。

Meteor是一个JavaScript框架,因此您无法创建PHP文件并尝试在Meteor中启动它们。您的所有代码都必须是JavaScript。

这是流星开发的基本部分。 I suggest you try the Meteor tutorial which should help you learn how to use Meteor.

您发布的代码无法实现您想要实现的目标,您需要删除PHP并在JavaScript中重写它。