php从url返回图片

时间:2015-03-30 06:49:57

标签: php image dynamic-image-generation

我想通过http://placehold.it/500x500之类的网址返回图片。 我有我的URL http://example.inc/assets/image/35345,它在控制器上调用一个动作。控制器从数据库中获取一些数据(名称,ID等)以及图像内容的二进制字符串。

在前端网站上,我有我的img标签,我想在我的src属性中调用url。

<img src="http://example.inc/assets/image/35345">

更多信息,我使用纤薄的PHP框架,我的服务器是ubuntu 13.x系统(流浪者等)。我是一名典型的前端开发人员,没有很好的技能@ PHP。

以下代码段的工作原理:

$file = fopen($name, 'wb');
fwrite($file, $binaryData);
fclose($file);

但我不想在目录中生成文件。这可能吗?

编辑:设置内容类型和内容长度标题,这不是问题。

3 个答案:

答案 0 :(得分:0)

抓取图像的内容,base64对其进行编码,然后返回一个base64图像。

$file = file_get_contents($name);
list($width, $height, $type, $attr) = getimagesize($file);
echo '<img src="data:image/'.$type.';'.base64_encode($file).'"/>';

答案 1 :(得分:0)

  1. 您应该使用类似的内容在目录中上传图片。此代码会将您的图像上传到目录中。
  2. &#13;
    &#13;
    if ($_FILES['file']['name'] != "") {
                $filename = $_FILES['file']['name']; //getting name of the file from form
                $filesize = $_FILES['file']['size'];
                $info = new SplFileInfo($filename);
                $ext = $info->getExtension();
                $filesize1 = ($filesize * .0009765625) * .0009765625;
                if (!($ext == 'jpg' || $ext == 'png' || $ext == 'jpeg')) {
                    //set some error message and redirect
                }
                if ($filesize1 >= 5.0) {
                     //set message image size should be less than 5 mb
                }
    
                $target_path = $_SERVER['DOCUMENT_ROOT'] . "../images/profile_images/";
                move_uploaded_file($_FILES['file']['tmp_name'], "$target_path" . $_FILES['file']['name']) or
                        die("Could not copy file!");
            }
    &#13;
    &#13;
    &#13;

    1. 在数据库中插入图片名称(带扩展名)。(此处为$ filename)
    2. 从数据库中获取图像名称并存储在变量中($ profile_image here),在img src中使用它。
    3. &#13;
      &#13;
      <a href='../images/profile_images/$profile_image'><img alt='Avatar' src='../images/profile_images/$profile_image'></a>
      &#13;
      &#13;
      &#13;

      1. 您只能使用Anchor标记在浏览器的另一个标签中重定向用户的图片。
      2. 希望这个答案对你有所帮助。

答案 2 :(得分:0)

因为我有一个带有iso charset的mssql数据库,我已将所有结果转换为utf-8,问题是,bytestring也转换为utf-8。

在非转换bytestring之后,我还返回了bytestring并将标题内容类型设置为image / extension