外部のファイルをダウンロードして利用するには

SheetAssetでは、カスタムフィールドやアイテムとして登録されたファイル以外にも外部URLを元にファイルをダウンロードして利用することもできます。

外部URLはurl属性として指定しますが、いくつかの方法があります。

ダウンロードするファイルは、認証が設けられていない一般公開されたファイルを使用してください。基本認証を設けたURLは現在、サポート対象外です。

任意のURL

CSVファイルを直接ダウンロードできるURLを指定します。Perlモジュールがインストール済みでExcelファイルにも対応した環境では、ExcelファイルのURLでも結構です。

<table>
    <mt:SheetAssetRows url="http://example.com/path/to/test.csv">
        <tr>
            <mt:SheetAssetColumns>
                <td><mt:SheetAssetCell /></td>
            </mt:SheetAssetColumns>
        </tr>
    </mt:SheetAssetRows>
</table>

Dropboxの共有ファイル

ファイルストレージサービスのDropboxでファイルを共有すると、次のような公開用URLを取得できます。

https://www.dropbox.com/s/yor525mkszztiqp/test.csv?dl=1

このURLをそのままfile属性に指定することができます。

<table>
    <mt:SheetAssetRows url="https://www.dropbox.com/s/yor525mkszztiqp/test.csv?dl=1">
        <tr>
            <mt:SheetAssetColumns>
                <td><mt:SheetAssetCell /></td>
            </mt:SheetAssetColumns>
        </tr>
    </mt:SheetAssetRows>
</table>

Copy.comの共有ファイル

ファイルストレージサービスのCopy.comでファイルを共有すると、次のような公開用URLを取得できます。

https://copy.com/WdarcomwaEf6gQlW

このURLをそのままfile属性に指定することができます。

<table>
    <mt:SheetAssetRows url="https://copy.com/WdarcomwaEf6gQlW">
        <tr>
            <mt:SheetAssetColumns>
                <td><mt:SheetAssetCell /></td>
            </mt:SheetAssetColumns>
        </tr>
    </mt:SheetAssetRows>
</table>

正しくダウンロードできない場合

一時ファイル用のディレクトリは書き込み可能な状態ですか?

ダウンロードしたファイルは、Movable Typeが定める一時ファイル用のディレクトリに保存されます。この一時ファイル用のディレクトリが書き込みできない状態にあると、file属性によるダウンロードファイルを正しく利用できません。

詳しくはTempDir環境変数について参照ください。

ファイル名や拡張子が明確になっていますか?

ファイル名を含まないURLや、WebサーバがContent-Dispositionヘッダとしてファイル名を返さない環境では、ダウンロードしたファイルの形式を推測することができません。

http://example.com/3Hb8Dawc

ダウンロードするファイルの形式が分かっている場合は、URLにfilenameダミーパラメータを付加することで問題を回避できます。

http://example.com/3Hb8Dawc?filename=dummy.csv