我在使用 atk4 文件存储文件上传时遇到问题。
我将 atk4-addons 中的 fileadmin.php 复制到我的页面目录中,并使用创建了四个表的 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 的自动增量或文件存储插件如何查找卷的问题。