web-dev-qa-db-ja.com

public://にアップロードされた画像の使用方法

私は画像をアップロードする可能性があるフォームを使用して、これはファイルの場所を示すコードの一部です:'#upload_location' => 'public://',

これは、テーブルビューに行を生成するコードです。

$rows[] = array(
        'data' => array(
            l($node->id, 'node/'. $node->id),
            $node->url,
            $node->title,
            $icon = "<img src='$node->icon'>",
            $node->created,
            $delete = "<a id='delete' href='$node->id/delete'> " . t('Delete') . "</a> | <a id='edit' href='$node->id/edit'> " . t('Edit') . "</a>"
        )
  );

「$ icon」に注意してください。 $ node-> iconは、たとえばusa.gifを返します。しかし、もちろんパスは無効です。

問題は、画像をどのように使用できるかです。わかりません

おそらくいくつかのdrupalこれを行う方法があります。アドバイスは大歓迎です!

2
mhmdrupal

$node->iconはpublic://からの相対パスです。次のコードを使用できます。

if ($wrapper = file_stream_wrapper_get_instance_by_uri("public://{$node->icon}")) {
  $url = $wrapper->getExternalUrl();
}

コードは、ファイルがコードを実行しているサーバーに対してローカルではない、ローカルではないストリームラッパーに対しても機能します。

4
kiamlaluno