dolibarr 19.0.3
Documents Class Reference

API class for receive files. More...

Inheritance diagram for Documents:
Collaboration diagram for Documents:

Public Member Functions

 __construct ()
 Constructor.
 
 index ($modulepart, $original_file='')
 Download a document.
 
 builddoc ($modulepart, $original_file='', $doctemplate='', $langcode='')
 Build a document.
 
 getDocumentsListByElement ($modulepart, $id=0, $ref='', $sortfield='', $sortorder='')
 Return the list of documents of a dedicated element (from its ID or Ref)
 
 post ($filename, $modulepart, $ref='', $subdir='', $filecontent='', $fileencoding='', $overwriteifexists=0, $createdirifnotexists=1)
 Return a document.
 
 delete ($modulepart, $original_file)
 Delete a document.
 
- Public Member Functions inherited from DolibarrApi
 __construct ($db, $cachedir='', $refreshCache=false)
 Constructor.
 

Private Member Functions

 _validate_file ($data)
 Validate fields before create or update object.
 

Additional Inherited Members

- Protected Member Functions inherited from DolibarrApi
 _checkValForAPI ($field, $value, $object)
 Check and convert a string depending on its type/name.
 
 _filterObjectProperties ($object, $properties)
 Filter properties that will be returned on object.
 
 _cleanObjectDatas ($object)
 Clean sensible object datas.
 
 _checkFilters ($sqlfilters, &$error='')
 Return if a $sqlfilters parameter is valid Function no more used.
 
- Static Protected Member Functions inherited from DolibarrApi
static _checkAccessToResource ($resource, $resource_id=0, $dbtablename='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid')
 Check access by user to a given resource.
 
static _forge_criteria_callback ($matches)
 Function to forge a SQL criteria from a Generic filter string.
 

Detailed Description

API class for receive files.

@access protected ,external}

Definition at line 34 of file api_documents.class.php.

Member Function Documentation

◆ _validate_file()

Documents::_validate_file ( $data)
private

Validate fields before create or update object.

Parameters
array$dataArray with data to verify
Returns
array
Exceptions
RestException

Definition at line 1004 of file api_documents.class.php.

◆ builddoc()

Documents::builddoc ( $modulepart,
$original_file = '',
$doctemplate = '',
$langcode = '' )

Build a document.

Test sample 1: { "modulepart": "invoice", "original_file": "FA1701-001/FA1701-001.pdf", "doctemplate": "crabe", "langcode": "fr_FR" }.

Supported modules: invoice, order, proposal, contract, shipment

Parameters
string$modulepartName of module or area concerned by file download ('thirdparty', 'member', 'proposal', 'supplier_proposal', 'order', 'supplier_order', 'invoice', 'supplier_invoice', 'shipment', 'project', ...)
string$original_fileRelative path with filename, relative to modulepart (for example: IN201701-999/IN201701-999.pdf).
string$doctemplateSet here the doc template to use for document generation (If not set, use the default template).
string$langcodeLanguage code like 'en_US', 'fr_FR', 'es_ES', ... (If not set, use the default language).
Returns
array List of documents
Exceptions
RestException500 System error
RestException501
RestException400
RestException401
RestException404

@url PUT /builddoc

Definition at line 140 of file api_documents.class.php.

References dol_check_secure_access_document(), dol_mimetype(), dol_osencode(), and getDolGlobalString().

◆ delete()

Documents::delete ( $modulepart,
$original_file )

Delete a document.

Parameters
string$modulepartName of module or area concerned by file download ('product', ...)
string$original_fileRelative path with filename, relative to modulepart (for example: PRODUCT-REF-999/IMAGE-999.jpg)
Returns
array List of documents
Exceptions
RestException400
RestException401
RestException404

@url DELETE /

Definition at line 939 of file api_documents.class.php.

References dol_check_secure_access_document(), dol_osencode(), and dol_syslog().

◆ getDocumentsListByElement()

Documents::getDocumentsListByElement ( $modulepart,
$id = 0,
$ref = '',
$sortfield = '',
$sortorder = '' )

Return the list of documents of a dedicated element (from its ID or Ref)

Supported modules: thirdparty, user, member, proposal, order, supplier_order, shipment, invoice, supplier_invoice, product, event, expensereport, knowledgemanagement, category, contract

Parameters
string$modulepartName of module or area concerned ('thirdparty', 'member', 'proposal', 'order', 'invoice', 'supplier_invoice', 'shipment', 'project', ...)
int$idID of element
string$refRef of element
string$sortfieldSort criteria ('','fullname','relativename','name','date','size')
string$sortorderSort order ('asc' or 'desc')
Returns
array Array of documents with path
Exceptions
RestException400
RestException401
RestException404
RestException500 System error

@url GET /

Definition at line 306 of file api_documents.class.php.

References dol_dir_list(), dol_sanitizeFileName(), and get_exdir().

◆ index()

Documents::index ( $modulepart,
$original_file = '' )

Download a document.

Note that, this API is similar to using the wrapper link "documents.php" to download a file (used for internal HTML links of documents into application), but with no need to have a session cookie (the token is used instead).

Parameters
string$modulepartName of module or area concerned by file download ('facture', ...)
string$original_fileRelative path with filename, relative to modulepart (for example: IN201701-999/IN201701-999.pdf)
Returns
array List of documents
Exceptions
RestException400
RestException401
RestException404

@url GET /download

Definition at line 69 of file api_documents.class.php.

References dol_check_secure_access_document(), dol_mimetype(), dol_osencode(), and dol_syslog().

◆ post()

Documents::post ( $filename,
$modulepart,
$ref = '',
$subdir = '',
$filecontent = '',
$fileencoding = '',
$overwriteifexists = 0,
$createdirifnotexists = 1 )

Return a document.

Parameters
int$idID of document
Returns
array Array with data of file
Exceptions
RestExceptionUpload a document.

Test sample for invoice: { "filename": "mynewfile.txt", "modulepart": "invoice", "ref": "FA1701-001", "subdir": "", "filecontent": "content text", "fileencoding": "", "overwriteifexists": "0" }. Test sample for supplier invoice: { "filename": "mynewfile.txt", "modulepart": "supplier_invoice", "ref": "FA1701-001", "subdir": "", "filecontent": "content text", "fileencoding": "", "overwriteifexists": "0" }. Test sample for medias file: { "filename": "mynewfile.txt", "modulepart": "medias", "ref": "", "subdir": "image/mywebsite", "filecontent": "Y29udGVudCB0ZXh0Cg==", "fileencoding": "base64", "overwriteifexists": "0" }.

Supported modules: invoice, order, supplier_order, task/project_task, product/service, expensereport, fichinter, member, propale, agenda, contact

Parameters
string$filenameName of file to create ('FA1705-0123.txt')
string$modulepartName of module or area concerned by file upload ('product', 'service', 'invoice', 'proposal', 'project', 'project_task', 'supplier_invoice', 'expensereport', 'member', ...)
string$refReference of object (This will define subdir automatically and store submited file into it)
string$subdirSubdirectory (Only if ref not provided)
string$filecontentFile content (string with file content. An empty file will be created if this parameter is not provided)
string$fileencodingFile encoding (''=no encoding, 'base64'=Base 64)
int$overwriteifexistsOverwrite file if exists (1 by default)
int$createdirifnotexistsCreate subdirectories if the doesn't exists (1 by default)
Returns
string
Exceptions
RestException400
RestException401
RestException404
RestException500 System error

@url POST /upload

Definition at line 653 of file api_documents.class.php.

References Contact(), dol_basename(), dol_check_secure_access_document(), dol_delete_file(), dol_is_dir(), dol_is_file(), dol_mkdir(), dol_move(), dol_sanitizeFileName(), dol_sanitizePathName(), dol_syslog(), dolCheckVirus(), dolChmod(), get_exdir(), getDolGlobalInt(), getDolGlobalString(), getUserRemoteIP(), and isAFileWithExecutableContent().


The documentation for this class was generated from the following file: