首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sugarcrm文件上传

Sugarcrm文件上传
EN

Stack Overflow用户
提问于 2012-08-06 19:16:52
回答 1查看 2.9K关注 0票数 1

我也是sugarcrm和php的新手。我想创建一个自定义模块上传文件到sugarcrm数据库作为blob。到目前为止,我已经使用模块构建器创建了一个自定义模块。它是一种文件类型,因此允许上载文件,但只有文件名保存在数据库中。我想将文件内容保存为blob。有没有办法做到这一点。请让我知道

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-06 22:16:01

我会尝试帮助,但我需要更多的信息,确切地说,你正在寻找上传。它是图像文件还是文档?这两种方法都有内置的处理程序,因此您可能会根据自己的需要采取困难的方式。

如果您正在上传图像,则会有一个字段类型来处理图像的上传,并将其存储在缓存区(这是默认存储位置)。

如果您需要上传文档,大多数现有模块中都内置了默认处理程序(联系人、潜在客户和客户都有)。我建议在该代码中四处窥探,因为大多数困难的工作很可能都已经完成了。

+++好的,我没有意识到你只想存储在blob中。仅供参考,不建议将此数据存储在标准_cstm表中,因为每次您调用特定模块时,bean类都会尝试将此数据加载到对象中,这将对服务器资源造成巨大的消耗。您将希望以标准的3NF方式分隔表。

也就是说,您将需要创建一个二进制转换类/方法(快速搜索以查看一些预构的类/方法)。假设您使用了正确的字段类型( file,注意文本字段),您将希望为save操作创建一个新的处理程序文件,并将其设置为入口点。

该文件应如下所示:

代码语言:javascript
复制
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');

require_once('include/formbase.php');
require_once('modules/[MODULE TYPE]/config.php');
require_once('include/SugarFields/SugarFieldHandler.php');

$focus = new [MODULE TYPE]();
$focus = populateFromPost('', $focus);

if(!$focus->ACLAccess('Save')){
    ACLController::displayNoAccess(true);
    sugar_cleanup(true);
}

//SOME CODE TO CONVERT TO BINARY AND THEN STORE VALUE INTO FIELD NAME USING
// $focus->[fieldName] = outputFromBinaryConversion($_POST['theFileField']);
// That would store the blob into the existing _cstm table
// --OR, you would get the id of the saved module using $return_id = $focus->id;
// and use the id to link to the blob stored in another (unsupported) table.


$focus->save();

我希望这能澄清您的方向,但我真的建议您考虑使用现有的文档处理类,因为它将更干净、更快地实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11827213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档