外部のファイルをダウンロードして利用するには
SheetAssetでは、カスタムフィールドやアイテムとして登録されたファイル以外にも外部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