2012-08-06 3 views
1

나는 sugarcrm과 php에도 상당히 익숙하다. blob로 sugarcrm 데이터베이스에 파일을 업로드하는 사용자 정의 모듈을 만들고 싶습니다. 지금까지 모듈 빌더를 사용하여 맞춤 모듈을 만들었습니다. 파일 형식이므로 파일을 업로드 할 수 있지만 파일 이름 만 데이터베이스에 저장됩니다. 파일 내용을 blob로 저장하려고합니다. 이것을 할 수있는 방법이 있습니까? 나 미리Sugarcrm 파일 업로드

내가 도움을 시도합니다

답변

1

에서

감사를 알려,하지만 난 당신이 업로드 찾고 정확히 무엇에 좀 더 정보가 필요하시기 바랍니다. 이미지 파일입니까, 아니면 문서입니까? 두 가지 모두를위한 핸들러가 내장되어 있으므로 필요에 따라 어려울 수 있습니다.

이미지를 업로드하는 경우 이미지를 업로드하고 캐시 영역 (기본 저장 위치)에 저장하는 필드 유형이 있습니다.

문서를 업로드해야하는 경우 기존 모듈의 대부분 (주소록, 리드 및 계정 모두 포함)에 기본 처리기가 내장되어 있습니다. 대부분의 어려운 작업이 가장 많이 수행 될 것이므로이 코드를 기웃 거리며 돌아 다니는 것이 좋습니다.

+++ 좋아, 나는 네가 특별히 블롭에만 저장하려고한다는 것을 몰랐다. 참고로,이 데이터를 표준 _cstm 테이블에 저장하는 것은 바람직하지 않습니다. Bean 클래스는 특정 모듈에 대한 호출을 할 때마다이 데이터를 객체에로드하려고 시도하기 때문에 큰 손실을 가져옵니다 on 서버 리소스. 표준 3NF 방식으로 테이블을 분리해야합니다.

그렇다면 이진 변환 클래스/메소드를 만들어야합니다 (사전 검색된 일부를 보려면 빠른 검색). 적절한 필드 유형 (파일 및 텍스트 필드 참고)을 사용한다고 가정하면 저장 작업에 대한 새 처리기 파일을 만들어 진입 점으로 설정해야합니다.

이 파일의 모양은 다음과 같습니다

<?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(); 

내가 그 당신의 방향을 조금 명확히 희망하지만 빨리 훨씬 깨끗하고 것 같은 정말, 기존의 문서 처리 클래스를 사용하여 보는 것이 좋습니다 도구.

+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 문서를 업로드하고 싶습니다. 예, 그들은 이미 그것의 핸들러지만, 그들은 단지 폴더에 문서를 저장합니다. 파일 내용을 데이터베이스에 BLOB 형식으로 저장하려고합니다. 데이터베이스에 필드 BLOB를 만들고 사용자가 문서를 제출할 때 파일 내용을 자동으로 추가하려고합니다. – justtesting

+0

다시 한번 감사드립니다. 그것을 시도 할 것이다. – justtesting