web-dev-qa-db-ja.com

filefieldファイルのサイズを表示する

FileFieldアップロードのファイルサイズ(2.12 MBなど)を取得するにはどうすればよいですか?

ビューの行テンプレートからこれを試しましたが、エラーメッセージが表示されます(function.filesize]:stat failed for ..filename ..):

// this correctly gets the result
// /sites/example.com/files/CIRS_manual_test.pdf
$file_field = '/' . $field->original_value;
print "<a href='" . $file_field . '">Download chapter as pdf: ';
print filesize($file_field) . '</a>';

フルパス/ www/...を使用してみましたが、同じエラーメッセージが表示されます。私のブラウザーでそれをロードできるので、パスが正しいことを知っています。

5
g_thom

実際のファイルサイズを取得することについて話しているのですか、それとも単にサイズをフォーマットすることについて話しているのですか?

最初の場合は、ビューの{files}テーブルに関係を追加して、filesize列をプルできるようにすることができます。 IIRC、fidに関係を追加すると、フィールドに「ファイル:サイズ」と表示されます。ただし、SFTPなどを使用して手動でファイルを上書きした場合、これは機能しません。

Webパスと実際のファイルシステムパスの違いにより、エラーが発生しています。

5
mpdonadio

DrupalにはそのためのAPI関数があります: format_size

3
googletorp