PHP で Flash ファイル(.swf) をアップロード出来るアプリを作っていたところ、今までなら問題なくアップロード出来ていたコードなのに、急にアップロード出来なくなる現象に遭遇しました。
で、早速色々と調べたところ、アップロードされたファイルの判断方法に原因があることがわかりました。
いつも、アップロードされたファイルが何なのかは、GetImageSizeで判断しており、
通常、swf ファイルをアップロードすると、返ってくる画像のフラグは、4 = SWF になりますが、そのとあるファイルに限っては、13 = SWC が返ってきているため判断のミスが起こり、アップロード出来ていませんでした。
それにしても SWC って一体… と思い調べたところ、Adobe のサイトに以下の記述がありました。
SWC ファイルには、再利用可能な Flash コンポーネントが含まれます。各 SWC ファイルには、コンパイル済みのムービークリップ、ActionScript コード、およびコンポーネントに必要なその他のアセットが格納されます。
だからといって、何故 swf ファイルを読み込んで、swc と判断するかまでは追い切れないので、一瞬悩みましたが、「swc だったら、swf と判断する」処理を加え今回の所も乗り切ることにしました。
用途だけを考えるのならば、これで問題ないといえばないので良しとしておきたいところです。
うーん、でもちょっと気持ち悪いな…