ファイルをアップロードするカスタムフィールドの作成

ファイルをアップロードするカスタムフィールド

ファイルのカスタムフィールドを作成することでPDFやExcelなどのファイルをエントリーから投稿できるようになります。ファイルのカスタムフィールドの作成方法について解説していきます。

例)PDFファイルをアップロードするカスタムフィールド(フィールド名:pdffile)

<!-- BEGIN pdffile@path:veil -->
<input type="hidden" name="pdffile@old" value="{pdffile@path}" />
<input type="hidden" name="pdffile@secret" value="{pdffile@secret}" />
<input type="hidden" name="pdffile@baseName" value="{pdffile@baseName}" />
<input type="hidden" name="pdffile@fileSize" value="{pdffile@fileSize}" />
<label for="input-checkbox-pdffile@edit">
  <input type="checkbox" name="pdffile@edit" value="delete" id="input-checkbox-pdffile@edit" /> 削除
</label>
<a href="%{HTTP_ARCHIVES_DIR}{pdffile@path}"><img src="/images/fileicon/pdf.gif" width="64" height="64" alt="zip" /></a><!-- END pdffile@path:veil -->
<input type="file" name="pdffile" />
<input type="hidden" name="field[]" value="pdffile" />
<input type="hidden" name="pdffile:extension" value="file" />
<input type="hidden" name="pdffile@extension" value="pdf" />
<input type="hidden" name="pdffile@filename" value="pdf/example.pdf" />

記述の解説

ファイルがアップロードされなかった場合に既存のアップロードされているファイルの情報を送信する記述

<input type="hidden" name="pdffile@old" value="{pdffile@path}" />
<input type="hidden" name="pdffile@secret" value="{pdffile@secret}" />

ファイルサイズ

<input type="hidden" name="pdffile@baseName" value="{pdffile@baseName}" />
<input type="hidden" name="pdffile@fileSize" value="{pdffile@fileSize}" />

アップロードしてあるファイルを削除する記述【任意】

<label for="input-checkbox-pdffile@edit">
  <input type="checkbox" name="pdffile@edit" value="delete" id="input-checkbox-pdffile@edit" /> 削除
</label>

アップロードしたファイルのアイコンとリンク表示【必須】

<a href="%{HTTP_ARCHIVES_DIR}{pdffile@path}"><img src="/images/fileicon/pdf.gif" width="64" height="64" alt="zip" />

ファイルのカスタムフィールドであることの記述【必須】

<input type="hidden" name="pdffile:extension" value="file" />

アップロードするファイルの拡張子を指定【任意】

<input type="hidden" name="pdffile@extension" value="pdf" />

アップロードする場所とファイル名を指定【任意】

<input type="hidden" name="pdffile@filename" value="pdf/example.pdf" />

この場合、アップロードしたファイル名に関係なくファイル名はexample.pdfとして保存されます

補足

ファイル名をランダムにするには
valueの値を空欄にすることでランダムになります

<input type="hidden" name="pdffile@filename" value="" />

ファイル名をアップロードされたファイル名のままにするには
valueの値を"@rawfilename"にすることでそのままになります

<input type="hidden" name="pdffile@filename" value="@rawfilename" />

カスタムユニットでも同様に、ファイル名のままにする場合は value="@rawfilename" とします。