我正在做图像旋转功能。我正在旋转图像并使用

$rotate = imagerotate($source, 90, 0);
$rotatedTmpFile = tempnam('/tmp', 'rotatedThumbnailImage');
imagejpeg($rotate, $rotatedTmpFile ,100);

文件在 tmp 文件夹中创建。但现在我想
  • 读取 tmp 目录
  • 的内容
  • 生成 tmp 图像文件的 url
  • 将该 src 作为响应发送回 ajax 调用

  • Javascript:
    $.ajax({
        url: PAdmin.roateImageUrl,
        data: {
            mediaId: id[1],
            src: src
        },
        type: 'POST',
        success: function(response) {
            img.attr('src', response);
        }
    });
    
  • 在上传到 S3 服务器之前向最终用户显示旋转的图像。

  • 请帮忙。

    最佳答案

    我很确定/tmp 不能直接通过您的网络服务器访问。您应该从/tmp 移动到 docroot 中的目录,或者直接在 html 中对图像进行编码;使用

    $mime = mime_content_type($rotatedTmpFile);
    $data = file_get_contents($rotatedTmpFile);
    exit('data:' . $mime . ';base64,' . base64_encode($data));
    

    这应该作为一个图像源,但可能有点资源昂贵

    关于php - 将临时目录中的图像显示给最终用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31289789/

    10-16 21:13