FlashでPerlを介した別ドメインのデータ取得方法(mimeType判別付き) +PHP版

  • hatena bookmark
  • Twitter
  • Delicious
  • Blogger Post
  • Evernote
  • Google Bookmarks
  • Share/Bookmark

Flashで別ドメイン(クロスドメイン)にある画像の表示方法(AS3.0)のポストの『3.ポリシーファイルの配置が不可能な場合』の部分で、mimeタイプをJpegに決め打ちしていたのが気になったので、変更対応したものを書いてみます。
ちなみに個人的に慣れてるperlを使ってみました。phpについては後半に記載しています。


1. Perl版

使用モジュール:
・ CGI
・ LWP::UserAgent
・ File::Basename
File::MMagic

use CGI qw(:cgi);
use LWP::UserAgent;
use File::Basename;
use File::MMagic;

my $cgi = new CGI;
my $url = $cgi -> param( 'file' );

my $file = LWP::UserAgent -> new -> get($url) -> content;

my $type = File::MMagic -> new -> checktype_filename( basename( $url ) );

print $cgi -> header( $type );
print $file;

exit;

9行目で対象ファイルのデータを取得。
11行目のchecktype_filename関数ではURL形式では受け付けてくれないので、File::Basenameモジュールのbasename関数でファイル名(拡張子付き)を取得し与えています。

2. PHP版
<?php
if( $_GET[ "file" ] ) {
	$type = mime_content_type( $_GET[ "file" ] );
	header( "Content-Type: {$type};" );
	readfile( $_GET[ "file" ] );
}
?>

ただ、mime_content_type関数が非推奨のようで、
PECL 拡張モジュール Fileinfoのfinfo_file関数 を使う方が良いそうです。

  • hatena bookmark
  • Twitter
  • Delicious
  • Blogger Post
  • Evernote
  • Google Bookmarks
  • Share/Bookmark
関連する記事:
  1. Flashで別ドメイン(クロスドメイン)にある画像の表示方法(AS3.0)
  2. Perl/PHPでファイルのデータ内容の比較を行う方法
  3. Flashで作ったウィジェットを出力する方法(Perl/PHP出力付き)
  4. FlashとPerlでsocket通信をする方法 (AS3.0)
  1. コメントはまだありません。

  1. 2009年 8月 24日
    トラックバック先 :Instagram APIを触ってみる « trace
コメント 停止中