【问题标题】:base64 Pic Upload and Crop Situation PHPbase64 图片上传和裁剪情况 PHP
【发布时间】:2012-10-20 10:14:21
【问题描述】:

我正在尝试将图片从移动设备上传到服务器。我们正在使用 PhoneGap (Javascript) 构建,因此我们将其转换为字符串以便将其发送到服务器。我收到后遇到问题,将其转回可读的图像文件。 简单来说,我需要取一个字符串和一个发给我的文件名,解码,转换成.png,然后裁剪成圆形图片。

这就是我目前正在做的事情

if (isset($_POST['file'])) 
{
    //Result variable
    $result = false;

    $pic = base64_decode($_POST['file']);
    $filename = $_POST['filename'];

    if (strlen($pic) > 9 )
    {
        $fh = fopen("/var/www/pics/events/".$filename, 'w') or die("can't open file");
        fwrite($fh, $pic);
        fclose($fh);
    }
}

如果我能找出我在这里做错了什么导致它不能正确保存为图像文件,我想我可以让其余的代码工作?该文件正确上传,但它没有扩展名,当我在浏览器中指向它时,它看起来应该是一个图像文件,但从不显示图像。当我直接到它的位置时,我会看到那个带有彩色形状的破碎的小图片图标。

我是否需要了解在此过程中发送的图像类型?如何知道它是 .gif、.jpg/jpeg、.png 等...?

提前感谢您的帮助!

内森

【问题讨论】:

    标签: php javascript base64


    【解决方案1】:

    出于安全原因,您应该清理文件名以防止目录遍历。

    请注意,请确保使用正确的扩展名保存文件;如果您已经使用正确的扩展名进行保存,您可能会遇到来自应用的编码问题。

    如果上述两种情况都不是,请确保您的字符串大小不超过 php.ini 中的最大 POST 大小限制;如果是这种情况,请增加大小限制。

    【讨论】:

    • 是应用程序使用的编码方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2011-10-08
    相关资源
    最近更新 更多