atk4ファイルストアファイルのアップロードの使用に問題があります。
fileadmin.phpをatk4-addonsからページディレクトリにコピーし、4つのテーブルを作成するfilestore_001.sqlスクリプトを使用してテーブルを作成しました。
filestore_typeテーブルに次のデータを追加しました
および以下をfilestore_volumeテーブルに追加します
私はwebrootにuploadというディレクトリを作成し、それがアクセス許可の問題であるかどうかを確認するためのテストとして、777を含むさまざまなアクセス許可で試しました。
アップロードするローカルファイルを選択すると、テキストフィールドにファイル名が含まれるアップロードメッセージが表示されますが、完了すると、モデルデータがロードされていないことを示すエラーが表示されます。
これは、ファイルが正常にアップロードされなかったためだと思われますが、firebugのhttp応答以外に何が問題だったかを示すエラーが見つからないため、次のようになります。
<html><head><script>window.top.$('#paperless_fileadmin_form_Upload_test').atk4_uploader('uploadFailed',"Data was not loaded for paperless_fileadmin_form_Upload_test_controller_filestore_file_model_filestore_file_model_filestore_volume_2");
</script></head></html>
httpの投稿には、選択されたファイルが表示され、ファイルタイプがfilestore_filetypeで定義されたものではないため、コントローラーの一部が機能している場合、コードはアラートを表示します。
ファイルのアップロードを機能させるために何が欠けているかについての提案はありますか?
ロギングをオンにした場合の出力は次のとおりです。
------------------------------------------------------------
Date: 29-Jun-2012 13:23:47
Query String: page=fileadmin&submit=paperless_fileadmin_form&paperless_fileadmin_form_Upload_test_upload_action=paperless_fileadmin_form_Upload_test
Referer: http://192.168.56.103/keep/paperless/?page=fileadmin
Version: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1
Port: 80
------------------------------------------------------------
Stack trace
/var/www/keep/paperless/atk4/lib/Form/Field/upload.php:98 Logger->logException(Object(Exception_InstanceNotLoaded))
: Form_Field_Upload->loadPOST()
/var/www/keep/paperless/atk4/lib/AbstractObject.php:303 call_user_func_array(Array(2), Array(0))
/var/www/keep/paperless/atk4/lib/AbstractObject.php:294 AbstractObject->downCall("loadPOST", Array(0))
/var/www/keep/paperless/atk4/lib/Form/Basic.php:333 AbstractObject->downCall("loadPOST")
: Form_Basic->submitted()
/var/www/keep/paperless/atk4/lib/AbstractObject.php:303 call_user_func_array(Array(2), Array(0))
/var/www/keep/paperless/atk4/lib/AbstractObject.php:294 AbstractObject->downCall("submitted", Array(0))
/var/www/keep/paperless/atk4/lib/AbstractObject.php:294 AbstractObject->downCall("submitted", Array(0))
/var/www/keep/paperless/atk4/lib/ApiWeb.php:196 AbstractObject->downCall("submitted")
/var/www/keep/paperless/index.php:15 ApiWeb->main()
info.logからの出力は
[29-Jun-2012 13:23:47] No data with id: 1 for: Model_Filestore_Volume but got no data. Query: select filestore_volume.id, filestore_volume.name, filestore_volume.dirname, filestore_volume.total_space, filestore_volume.stored_files_cnt, filestore_volume.enabled, filestore_volume.id from filestore_volume filestore_volume where (filestore_volume.id = '1')
そしてそれは問題を解決します。ボリュームを追加しましたが、削除して別のボリュームを追加しました。これは、テーブルにID = 1のファイルストアボリュームがないことを意味します。上のスクリーンショットのようにIDは3なので、filestore_volumeの自動インクリメント、またはファイルストアアドオンがボリュームを検索する方法のいずれかに問題があると思います。