我有一个简单的网站,用户可以在其中上传图片,并为其命名。
上传表单应该在没有 JavaScript 和 JavaScript 的情况下工作(作为 XHR 层上的表单)。
我有一个:
- Form_Upload
- Model_Post(带有网关/映射器)
- 上传控制器
- SuperDuper - 处理文件上传、生成缩略图、存储图像等的类/资源。
我认为必须在 UploadController::uploadAction 中完成的事情是:
- 创建新表格
- 检查它是 POST 请求还是 GET 请求
- 检查是 XHR 请求还是常规请求
- 验证表格
- 从表单下载/接收文件
- 有效文件的 MIME 类型
- 使用 SuperDuper 转换文件,并返回附件 ID
- 如果一切正常,将带有附件 ID 的发布数据保存到数据库
- 在适当的上下文中返回响应
- 在适当的上下文中返回错误消息/表单错误
一个动作似乎可以完成很多事情。
并且有很多“ifs”,因为这个动作应该处理不同的上下文:GET、XHR POST、POST。
有没有什么好的 Zend 方法来处理这种情况(我相信它非常流行)。我应该在 Controller 中创建额外的私有函数来处理部分请求,还是根据上下文处理请求?
我的操作现在有 140 行长,而且似乎是错误的。