dolibarr 19.0.4
files.lib.php File Reference

Library for file managing functions. More...

Go to the source code of this file.

Functions

 dol_basename ($pathfile)
 Make a basename working with all page code (default PHP basenamed fails with cyrillic).
 
 dol_dir_list ($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
 Scan a directory and return a list of files/directories.
 
 dol_dir_list_in_database ($path, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0)
 Scan a directory and return a list of files/directories.
 
 completeFileArrayWithDatabaseInfo (&$filearray, $relativedir)
 Complete $filearray with data from database.
 
 dol_compare_file ($a, $b)
 Fast compare of 2 files identified by their properties ->name, ->date and ->size.
 
 dol_is_dir ($folder)
 Test if filename is a directory.
 
 dol_is_dir_empty ($dir)
 Return if path is empty.
 
 dol_is_file ($pathoffile)
 Return if path is a file.
 
 dol_is_link ($pathoffile)
 Return if path is a symbolic link.
 
 dol_is_url ($url)
 Return if path is an URL.
 
 dol_dir_is_emtpy ($folder)
 Test if a folder is empty.
 
 dol_count_nb_of_line ($file)
 Count number of lines in a file.
 
 dol_filesize ($pathoffile)
 Return size of a file.
 
 dol_filemtime ($pathoffile)
 Return time of a file.
 
 dol_fileperm ($pathoffile)
 Return permissions of a file.
 
 dolReplaceInFile ($srcfile, $arrayreplacement, $destfile='', $newmask=0, $indexdatabase=0, $arrayreplacementisregex=0)
 Make replacement of strings into a file.
 
 dol_copy ($srcfile, $destfile, $newmask=0, $overwriteifexists=1, $testvirus=0, $indexdatabase=0)
 Copy a file to another file.
 
 dolCopyDir ($srcfile, $destfile, $newmask, $overwriteifexists, $arrayreplacement=null, $excludesubdir=0, $excludefileext=null)
 Copy a dir to another dir.
 
 dol_move ($srcfile, $destfile, $newmask=0, $overwriteifexists=1, $testvirus=0, $indexdatabase=1, $moreinfo=array())
 Move a file into another name.
 
 dol_move_dir ($srcdir, $destdir, $overwriteifexists=1, $indexdatabase=1, $renamedircontent=1)
 Move a directory into another name.
 
 dol_unescapefile ($filename)
 Unescape a file submitted by upload.
 
 dolCheckVirus ($src_file)
 Check virus into a file.
 
 dol_move_uploaded_file ($src_file, $dest_file, $allowoverwrite, $disablevirusscan=0, $uploaderrorcode=0, $nohook=0, $varfiles='addedfile', $upload_dir='')
 Make control on an uploaded file from an GUI page and move it to final destination.
 
 dol_delete_file ($file, $disableglob=0, $nophperrors=0, $nohook=0, $object=null, $allowdotdot=false, $indexdatabase=1, $nolog=0)
 Remove a file or several files with a mask.
 
 dol_delete_dir ($dir, $nophperrors=0)
 Remove a directory (not recursive, so content must be empty).
 
 dol_delete_dir_recursive ($dir, $count=0, $nophperrors=0, $onlysub=0, &$countdeleted=0, $indexdatabase=1, $nolog=0)
 Remove a directory $dir and its subdirectories (or only files and subdirectories)
 
 dol_delete_preview ($object)
 Delete all preview files linked to object instance.
 
 dol_meta_create ($object)
 Create a meta file with document file into same directory.
 
 dol_init_file_process ($pathtoscan='', $trackid='')
 Scan a directory and init $_SESSION to manage uploaded files with list of all found files.
 
 dol_add_file_process ($upload_dir, $allowoverwrite=0, $donotupdatesession=0, $varfiles='addedfile', $savingdocmask='', $link=null, $trackid='', $generatethumbs=1, $object=null)
 Get and save an upload file (for example after submitting a new file a mail form).
 
 dol_remove_file_process ($filenb, $donotupdatesession=0, $donotdeletefile=1, $trackid='')
 Remove an uploaded file (for example after submitting a new file a mail form).
 
 addFileIntoDatabaseIndex ($dir, $file, $fullpathorig='', $mode='uploaded', $setsharekey=0, $object=null)
 Add a file into database index.
 
 deleteFilesIntoDatabaseIndex ($dir, $file, $mode='uploaded')
 Delete files into database index using search criterias.
 
 dol_convert_file ($fileinput, $ext='png', $fileoutput='', $page='')
 Convert an image file or a PDF into another image format.
 
 dol_uncompress ($inputfile, $outputdir)
 Uncompress a file.
 
 dol_most_recent_file ($dir, $regexfilter='', $excludefilter=array('(\.meta|_preview.*\.png) $', '^\.'), $nohook=false, $mode='')
 Return file(s) into a directory (by default most recent)
 
 dol_check_secure_access_document ($modulepart, $original_file, $entity, $fuser='', $refname='', $mode='read')
 Security check when accessing to a document (used by document.php, viewimage.php and webservices to get documents).
 
 dol_filecache ($directory, $filename, $object)
 Store object in file.
 
 dol_cache_refresh ($directory, $filename, $cachetime)
 Test if Refresh needed.
 
 dol_readcachefile ($directory, $filename)
 Read object from cachefile.
 
 dirbasename ($pathfile)
 Return the relative dirname (relative to DOL_DATA_ROOT) of a full path string.
 
 getFilesUpdated (&$file_list, SimpleXMLElement $dir, $path='', $pathref='', &$checksumconcat=array())
 Function to get list of updated or modified files.
 
 dragAndDropFileUpload ($htmlname)
 Function to manage the drag and drop of a file.
 

Detailed Description

Library for file managing functions.

Definition in file files.lib.php.

Function Documentation

◆ addFileIntoDatabaseIndex()

addFileIntoDatabaseIndex ( $dir,
$file,
$fullpathorig = '',
$mode = 'uploaded',
$setsharekey = 0,
$object = null )

Add a file into database index.

Called by dol_add_file_process when uploading a file and on other cases. See also commonGenerateDocument that also add/update database index when a file is generated.

Parameters
string$dirDirectory name (full real path without ending /)
string$fileFile name (May end with '.noexe')
string$fullpathorigFull path of origin for file (can be '')
string$modeHow file was created ('uploaded', 'generated', ...)
int$setsharekeySet also the share key
Object$objectObject used to set 'src_object_*' fields
Returns
int Return integer <0 if KO, 0 if nothing done, >0 if OK

Definition at line 1997 of file files.lib.php.

References dol_osencode(), dol_syslog(), getDolGlobalString(), and getRandomPassword().

Referenced by dol_add_file_process(), and EmailCollector\saveAttachment().

◆ completeFileArrayWithDatabaseInfo()

completeFileArrayWithDatabaseInfo ( & $filearray,
$relativedir )

Complete $filearray with data from database.

This will call doldir_list_indatabase to complate filearray.

Parameters
array$filearrayArray of files obtained using dol_dir_list
string$relativedirRelative dir from DOL_DATA_ROOT
Returns
void

Definition at line 315 of file files.lib.php.

References dol_dir_list_in_database(), dol_osencode(), dol_syslog(), getDolGlobalInt(), and setEventMessages().

Referenced by FormFile\list_of_autoecmfiles(), FormFile\list_of_documents(), CommonObject\show_photos(), and FormFile\showdocuments().

◆ deleteFilesIntoDatabaseIndex()

deleteFilesIntoDatabaseIndex ( $dir,
$file,
$mode = 'uploaded' )

Delete files into database index using search criterias.

Parameters
string$dirDirectory name (full real path without ending /)
string$fileFile name
string$modeHow file was created ('uploaded', 'generated', ...)
Returns
int Return integer <0 if KO, 0 if nothing done, >0 if OK

Definition at line 2062 of file files.lib.php.

References dol_syslog().

◆ dirbasename()

dirbasename ( $pathfile)

Return the relative dirname (relative to DOL_DATA_ROOT) of a full path string.

Parameters
string$pathfileFull path of a file
Returns
string Path of file relative to DOL_DATA_ROOT

Definition at line 3395 of file files.lib.php.

Referenced by Ticket\copyFilesForTicket().

◆ dol_add_file_process()

dol_add_file_process ( $upload_dir,
$allowoverwrite = 0,
$donotupdatesession = 0,
$varfiles = 'addedfile',
$savingdocmask = '',
$link = null,
$trackid = '',
$generatethumbs = 1,
$object = null )

Get and save an upload file (for example after submitting a new file a mail form).

Database index of file is also updated if donotupdatesession is set. All information used are in db, conf, langs, user and _FILES. Note: This function can be used only into a HTML page context.

Parameters
string$upload_dirDirectory where to store uploaded file (note: used to forge $destpath = $upload_dir + filename)
int$allowoverwrite1=Allow overwrite existing file
int$donotupdatesession1=Do no edit _SESSION variable but update database index. 0=Update _SESSION and not database index. -1=Do not update SESSION neither db.
string$varfiles_FILES var name
string$savingdocmaskMask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__'
string$linkLink to add (to add a link instead of a file)
string$trackidTrack id (used to prefix name of session vars to avoid conflict)
int$generatethumbs1=Generate also thumbs for uploaded image files
Object$objectObject used to set 'src_object_*' fields
Returns
int Return integer <=0 if KO, >0 if OK
See also
dol_remove_file_process()

Definition at line 1762 of file files.lib.php.

References addFileIntoDatabaseIndex(), dol_mkdir(), dol_move_uploaded_file(), dol_sanitizeFileName(), dol_string_nohtmltag(), dol_syslog(), getDefaultImageSizes(), getDolGlobalInt(), getDolGlobalString(), GETPOST(), image_format_supported(), setEventMessages(), and vignette().

◆ dol_basename()

dol_basename ( $pathfile)

Make a basename working with all page code (default PHP basenamed fails with cyrillic).

We supose dir separator for input is '/'.

Parameters
string$pathfileString to find basename.
Returns
string Basename of input

Definition at line 37 of file files.lib.php.

Referenced by Documents\post().

◆ dol_cache_refresh()

dol_cache_refresh ( $directory,
$filename,
$cachetime )

Test if Refresh needed.

Parameters
string$directoryDirectory of cache
string$filenameName of filecache
int$cachetimeCachetime delay
Returns
boolean 0 no refresh 1 if refresh needed

Definition at line 3367 of file files.lib.php.

References dol_filemtime(), and dol_now().

Referenced by ModeleBoxes\showBox().

◆ dol_check_secure_access_document()

dol_check_secure_access_document ( $modulepart,
$original_file,
$entity,
$fuser = '',
$refname = '',
$mode = 'read' )

Security check when accessing to a document (used by document.php, viewimage.php and webservices to get documents).

TODO Replace code that set $accessallowed by a call to restrictedArea()

Parameters
string$modulepartModule of document ('module', 'module_user_temp', 'module_user' or 'module_temp'). Example: 'medias', 'invoice', 'logs', 'tax-vat', ...
string$original_fileRelative path with filename, relative to modulepart.
string$entityRestrict onto entity (0=no restriction)
User | null$fuserUser object (forced)
string$refnameRef of object to check permission for external users (autodetect if not provided by taking the dirname of $original_file) or for hierarchy
string$modeCheck permission for 'read' or 'write'
Returns
mixed Array with access information : 'accessallowed' & 'sqlprotectagainstexternals' & 'original_file' (as a full path name)
See also
restrictedArea()

Definition at line 2572 of file files.lib.php.

References checkUserAccessToObject(), dol_hash(), dol_syslog(), getDolUserInt(), and GETPOST().

Referenced by Documents\builddoc(), Documents\delete(), getDocument(), Documents\index(), and Documents\post().

◆ dol_compare_file()

dol_compare_file ( $a,
$b )

Fast compare of 2 files identified by their properties ->name, ->date and ->size.

Parameters
object$aFile 1
object$bFile 2
Returns
int 1, 0, 1

Definition at line 411 of file files.lib.php.

◆ dol_convert_file()

dol_convert_file ( $fileinput,
$ext = 'png',
$fileoutput = '',
$page = '' )

Convert an image file or a PDF into another image format.

This need Imagick php extension. You can use dol_imageResizeOrCrop() for a function that need GD.

Parameters
string$fileinputInput file name
string$extFormat of target file (It is also extension added to file if fileoutput is not provided).
string$fileoutputOutput filename
string$pagePage number if we convert a PDF into png
Returns
int Return integer <0 if KO, 0=Nothing done, >0 if OK
See also
dol_imageResizeOrCrop()

Definition at line 2121 of file files.lib.php.

References dol_is_file(), and dol_syslog().

Referenced by dol_banner_tab().

◆ dol_copy()

dol_copy ( $srcfile,
$destfile,
$newmask = 0,
$overwriteifexists = 1,
$testvirus = 0,
$indexdatabase = 0 )

Copy a file to another file.

Parameters
string$srcfileSource file (can't be a directory)
string$destfileDestination file (can't be a directory)
int$newmaskMask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666'
int$overwriteifexistsOverwrite file if exists (1 by default)
int$testvirusDo an antivirus test. Move is canceled if a virus is found.
int$indexdatabaseIndex new file into database.
Returns
int Return integer <0 if error, 0 if nothing done (dest file already exists and overwriteifexists=0), >0 if OK
See also
dol_delete_file() dolCopyDir()

Definition at line 718 of file files.lib.php.

References dol_is_file(), dol_osencode(), dol_syslog(), dolCheckVirus(), dolChmod(), getDolGlobalString(), and setEventMessages().

Referenced by Project\createFromClone(), Task\createFromClone(), dolCopyDir(), Website\exportWebSite(), Utils\generateDoc(), modBom\init(), modBookCal\init(), modCommande\init(), modContrat\init(), modEventOrganization\init(), modExpedition\init(), modFacture\init(), modFournisseur\init(), modKnowledgeManagement\init(), modMrp\init(), modMyModule\init(), modPartnership\init(), modProjet\init(), modPropale\init(), modReception\init(), modRecruitment\init(), modSociete\init(), modStock\init(), modSupplierProposal\init(), modTicket\init(), modWebsite\init(), modWorkstation\init(), migrate_user_photospath(), migrate_user_photospath2(), rebuildObjectClass(), rebuildObjectSql(), and InterfaceActionsAuto\runTrigger().

◆ dol_count_nb_of_line()

dol_count_nb_of_line ( $file)

Count number of lines in a file.

Parameters
string$fileFilename
Returns
int Return integer <0 if KO, Number of lines in files if OK
See also
dol_nboflines()

Definition at line 557 of file files.lib.php.

References dol_osencode().

Referenced by ImportCsv\import_get_nb_of_lines().

◆ dol_delete_dir()

dol_delete_dir ( $dir,
$nophperrors = 0 )

Remove a directory (not recursive, so content must be empty).

If directory is not empty, return false

Parameters
string$dirDirectory to delete
int$nophperrorsDisable all PHP output errors
Returns
boolean True if success, false if error
See also
dol_delete_file() dolCopyDir()

Definition at line 1484 of file files.lib.php.

References dol_osencode(), and dol_syslog().

Referenced by Delivery\delete(), EcmDirectory\delete(), and dol_delete_dir_recursive().

◆ dol_delete_dir_recursive()

dol_delete_dir_recursive ( $dir,
$count = 0,
$nophperrors = 0,
$onlysub = 0,
& $countdeleted = 0,
$indexdatabase = 1,
$nolog = 0 )

Remove a directory $dir and its subdirectories (or only files and subdirectories)

Parameters
string$dirDir to delete
int$countCounter to count nb of elements found to delete
int$nophperrorsDisable all PHP output errors
int$onlysubDelete only files and subdir, not main directory
int$countdeletedCounter to count nb of elements found really deleted
int$indexdatabaseTry to remove also index entries.
int$nologDisable log files (too verbose when making recursive directories)
Returns
int Number of files and directory we try to remove. NB really removed is returned into var by reference $countdeleted.

Definition at line 1509 of file files.lib.php.

References dol_delete_dir(), dol_delete_dir_recursive(), dol_delete_file(), dol_is_dir(), dol_osencode(), dol_syslog(), and utf8_check().

Referenced by Expedition\cancel(), FormMail\clear_attached_files(), FormTicket\clear_attached_files(), Website\createFromClone(), Commande\delete(), CommandeFournisseur\delete(), Contrat\delete(), Dolresource\delete(), EcmDirectory\delete(), Expedition\delete(), ExpenseReport\delete(), Facture\delete(), FactureFournisseur\delete(), Fichinter\delete(), Product\delete(), Project\delete(), Propal\delete(), Reception\delete(), Societe\delete(), SupplierProposal\delete(), Task\delete(), Website\delete(), dol_delete_dir_recursive(), Website\exportWebSite(), Website\importWebSite(), migrate_delete_old_dir(), and Utils\purgeFiles().

◆ dol_delete_file()

dol_delete_file ( $file,
$disableglob = 0,
$nophperrors = 0,
$nohook = 0,
$object = null,
$allowdotdot = false,
$indexdatabase = 1,
$nolog = 0 )

Remove a file or several files with a mask.

This delete file physically but also database indexes.

Parameters
string$fileFile to delete or mask of files to delete
int$disableglobDisable usage of glob like * so function is an exact delete function that will return error if no file found
int$nophperrorsDisable all PHP output errors
int$nohookDisable all hooks
object$objectCurrent object in use
boolean$allowdotdotAllow to delete file path with .. inside. Never use this, it is reserved for migration purpose.
int$indexdatabaseTry to remove also index entries.
int$nologDisable log file
Returns
boolean True if no error (file is deleted or if glob is used and there's nothing to delete), False if error
See also
dol_delete_dir()

Definition at line 1358 of file files.lib.php.

References dol_osencode(), dol_syslog(), dolChmod(), and setEventMessages().

Referenced by ActionComm\build_exportfile(), Expedition\cancel(), Utils\compressSyslogs(), Website\createFromClone(), Commande\delete(), CommandeFournisseur\delete(), Delivery\delete(), Expedition\delete(), ExpenseReport\delete(), Facture\delete(), FactureFournisseur\delete(), Fichinter\delete(), Propal\delete(), Reception\delete(), SupplierProposal\delete(), WebsitePage\delete(), Categorie\delete_photo(), Product\delete_photo(), CommonObject\delThumbs(), dol_delete_dir_recursive(), dol_delete_preview(), dol_move(), dol_remove_file_process(), dol_uncompress(), dolReplaceInFile(), dolSaveIndexPage(), dolSaveMasterFile(), dolSavePageContent(), Utils\dumpDatabase(), Website\exportWebSite(), migrate_delete_old_files(), Documents\post(), and Utils\purgeFiles().

◆ dol_delete_preview()

dol_delete_preview ( $object)

Delete all preview files linked to object instance.

Note that preview image of PDF files is generated when required, by dol_banner_tab() for example.

Parameters
object$objectObject to clean
Returns
int 0 if error, 1 if OK
See also
dol_convert_file()

Definition at line 1561 of file files.lib.php.

References dol_delete_file(), and dol_sanitizeFileName().

Referenced by CommonObject\commonGenerateDocument(), Commande\delete(), ExpenseReport\delete(), Facture\delete(), Fichinter\delete(), Propal\delete(), SupplierProposal\delete(), fichinter_create(), and Don\generateDocument().

◆ dol_dir_is_emtpy()

dol_dir_is_emtpy ( $folder)

Test if a folder is empty.

Parameters
string$folderName of folder
Returns
boolean True if dir is empty or non-existing, False if it contains files

Definition at line 525 of file files.lib.php.

References dol_osencode().

◆ dol_dir_list()

dol_dir_list ( $path,
$types = "all",
$recursive = 0,
$filter = "",
$excludefilter = null,
$sortcriteria = "name",
$sortorder = SORT_ASC,
$mode = 0,
$nohook = 0,
$relativename = "",
$donotfollowsymlinks = 0,
$nbsecondsold = 0 )

Scan a directory and return a list of files/directories.

Content for string is UTF8 and dir separator is "/".

Parameters
string$pathStarting path from which to search. This is a full path.
string$typesCan be "directories", "files", or "all"
int$recursiveDetermines whether subdirectories are searched
string$filterRegex filter to restrict list. This regex value must be escaped for '/' by doing preg_quote($var,'/'), since this char is used for preg_match function, but must not contains the start and end '/'. Filter is checked into basename only.
array$excludefilterArray of Regex for exclude filter (example: array('(.meta|_preview.*.png)$','^.')). Exclude is checked both into fullpath and into basename (So '^xxx' may exclude 'xxx/dirscanned/...' and dirscanned/xxx').
string$sortcriteriaSort criteria ('','fullname','relativename','name','date','size')
string$sortorderSort order (SORT_ASC, SORT_DESC)
int$mode0=Return array minimum keys loaded (faster), 1=Force all keys like date and size to be loaded (slower), 2=Force load of date only, 3=Force load of size only, 4=Force load of perm
int$nohookDisable all hooks
string$relativenameFor recursive purpose only. Must be "" at first call.
string$donotfollowsymlinksDo not follow symbolic links
string$nbsecondsoldOnly files older than $nbsecondsold
Returns
array Array of array('name'=>'xxx','fullname'=>'/abc/xxx','date'=>'yyy','size'=>99,'type'=>'dir|file',...)
See also
dol_dir_list_in_database()

Definition at line 62 of file files.lib.php.

References dol_dir_list(), dol_filemtime(), dol_fileperm(), dol_filesize(), dol_now(), dol_osencode(), dol_sort_array(), dol_syslog(), and utf8_check().

Referenced by account_statement_prepare_head(), actions_prepare_head(), Partnership\approve(), assetPrepareHead(), availabilitiesPrepareHead(), bank_prepare_head(), bomPrepareHead(), calendarPrepareHead(), commande_prepare_head(), CommonObject\commonGenerateDocument(), complete_substitutions_array(), Utils\compressSyslogs(), conferenceorboothPrepareHead(), contact_prepare_head(), contract_prepare_head(), Project\createFromClone(), Task\createFromClone(), delivery_prepare_head(), dol_dir_list(), dol_init_file_process(), dol_most_recent_file(), dol_move_dir(), dolGetListOfObjectClasses(), donation_prepare_head(), Utils\dumpDatabase(), evaluationPrepareHead(), expensereport_prepare_head(), AccountancyExport\exportFEC(), AccountancyExport\exportFEC2(), AccountancyExport\exportQuadratus(), facture_prepare_head(), facturefourn_prepare_head(), fichinter_prepare_head(), Utils\generateDoc(), Setup\getCheckIntegrity(), FormFile\getDocumentsLink(), Documents\getDocumentsListByElement(), getListOfModels(), Asset\getNomUrl(), AssetModel\getNomUrl(), Availabilities\getNomUrl(), Calendar\getNomUrl(), ConferenceOrBooth\getNomUrl(), ConferenceOrBoothAttendee\getNomUrl(), Evaluation\getNomUrl(), EvaluationLine\getNomUrl(), Job\getNomUrl(), KnowledgeRecord\getNomUrl(), MyObject\getNomUrl(), Partnership\getNomUrl(), PartnershipType\getNomUrl(), Position\getNomUrl(), ProductAttribute\getNomUrl(), ProductFournisseurPrice\getNomUrl(), RecruitmentCandidature\getNomUrl(), RecruitmentJobPosition\getNomUrl(), Skill\getNomUrl(), Skilldet\getNomUrl(), SkillRank\getNomUrl(), StockTransfer\getNomUrl(), StockTransferLine\getNomUrl(), Target\getNomUrl(), TimeSpent\getNomUrl(), Workstation\getNomUrl(), holiday_prepare_head(), doc_generic_asset_odt\info(), doc_generic_bom_odt\info(), doc_generic_contract_odt\info(), doc_generic_invoice_odt\info(), doc_generic_member_odt\info(), doc_generic_mo_odt\info(), doc_generic_myobject_odt\info(), doc_generic_odt\info(), doc_generic_order_odt\info(), doc_generic_product_odt\info(), doc_generic_project_odt\info(), doc_generic_proposal_odt\info(), doc_generic_reception_odt\info(), doc_generic_recruitmentjobposition_odt\info(), doc_generic_shipment_odt\info(), doc_generic_stock_odt\info(), doc_generic_supplier_invoice_odt\info(), doc_generic_supplier_order_odt\info(), doc_generic_supplier_proposal_odt\info(), doc_generic_task_odt\info(), doc_generic_ticket_odt\info(), doc_generic_user_odt\info(), doc_generic_usergroup_odt\info(), modWebsite\init(), jobPrepareHead(), knowledgerecordPrepareHead(), PrintingDriver\listDrivers(), loan_prepare_head(), member_prepare_head(), Societe\mergeCompany(), moPrepareHead(), myobjectPrepareHead(), ordersupplier_prepare_head(), partnershipPrepareHead(), positionCardPrepareHead(), product_prepare_head(), productlot_prepare_head(), project_prepare_head(), propal_prepare_head(), Utils\purgeFiles(), reception_prepare_head(), recruitmentCandidaturePrepareHead(), recruitmentjobpositionPrepareHead(), EcmDirectory\refreshcachenboffile(), resource_prepare_head(), FormEcm\selectAllSections(), FormWebsite\selectSampleOfContainer(), Fichinter\setValid(), ExpenseReport\setValidate(), shipping_prepare_head(), CommonObject\show_photos(), FormFile\showdocuments(), skilldetPrepareHead(), skillPrepareHead(), skillrankPrepareHead(), societe_prepare_head(), stocktransferPrepareHead(), task_prepare_head(), tax_prepare_head(), ticket_prepare_head(), user_prepare_head(), Commande\valid(), CommandeFournisseur\valid(), Delivery\valid(), Expedition\valid(), Propal\valid(), Reception\valid(), SupplierProposal\valid(), Availabilities\validate(), BOM\validate(), Calendar\validate(), ConferenceOrBoothAttendee\validate(), Contrat\validate(), Evaluation\validate(), EvaluationLine\validate(), Facture\validate(), FactureFournisseur\validate(), Holiday\validate(), Job\validate(), KnowledgeRecord\validate(), Mo\validate(), MyObject\validate(), Partnership\validate(), Position\validate(), ProductFournisseurPrice\validate(), RecruitmentCandidature\validate(), RecruitmentJobPosition\validate(), Skill\validate(), Skilldet\validate(), SkillRank\validate(), StockTransfer\validate(), StockTransferLine\validate(), Target\validate(), TimeSpent\validate(), various_payment_prepare_head(), vat_prepare_head(), workstationPrepareHead(), doc_generic_project_odt\write_file(), and doc_generic_task_odt\write_file().

◆ dol_dir_list_in_database()

dol_dir_list_in_database ( $path,
$filter = "",
$excludefilter = null,
$sortcriteria = "name",
$sortorder = SORT_ASC,
$mode = 0 )

Scan a directory and return a list of files/directories.

Content for string is UTF8 and dir separator is "/".

Parameters
string$pathStarting path from which to search. Example: 'produit/MYPROD'
string$filterRegex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function
array | null$excludefilterArray of Regex for exclude filter (example: array('(.meta|_preview.*.png)$','^.'))
string$sortcriteriaSort criteria ("","fullname","name","date","size")
string$sortorderSort order (SORT_ASC, SORT_DESC)
int$mode0=Return array minimum keys loaded (faster), 1=Force all keys like description
Returns
array Array of array('name'=>'xxx','fullname'=>'/abc/xxx','type'=>'dir|file',...)
See also
dol_dir_list()

Definition at line 237 of file files.lib.php.

References dol_print_error().

Referenced by completeFileArrayWithDatabaseInfo().

◆ dol_filecache()

dol_filecache ( $directory,
$filename,
$object )

Store object in file.

Parameters
string$directoryDirectory of cache
string$filenameName of filecache
mixed$objectObject to store in cachefile
Returns
void

Definition at line 3349 of file files.lib.php.

References dol_is_dir(), dol_mkdir(), and dolChmod().

Referenced by ModeleBoxes\showBox().

◆ dol_filemtime()

◆ dol_fileperm()

dol_fileperm ( $pathoffile)

Return permissions of a file.

Parameters
string$pathoffilePath of file
Returns
integer File permissions

Definition at line 612 of file files.lib.php.

References dol_osencode().

Referenced by dol_dir_list().

◆ dol_filesize()

dol_filesize ( $pathoffile)

Return size of a file.

Parameters
string$pathoffilePath of file
Returns
integer File size
See also
dol_print_size()

Definition at line 588 of file files.lib.php.

References dol_osencode().

Referenced by Utils\compressSyslogs(), dol_dir_list(), AccountancyExport\export(), Setup\getCheckIntegrity(), FileUpload\handleFileUpload(), Utils\sendBackup(), FormFile\showdocuments(), showWebsiteTemplates(), and FileUpload\validate().

◆ dol_init_file_process()

dol_init_file_process ( $pathtoscan = '',
$trackid = '' )

Scan a directory and init $_SESSION to manage uploaded files with list of all found files.

Note: Only email module seems to use this. Other feature initialize the $_SESSION doing $formmail->clear_attached_files(); $formmail->add_attached_files()

Parameters
string$pathtoscanPath to scan
string$trackidTrack id (used to prefix name of session vars to avoid conflict)
Returns
void

Definition at line 1724 of file files.lib.php.

References dol_dir_list(), and dol_mimetype().

◆ dol_is_dir()

◆ dol_is_dir_empty()

dol_is_dir_empty ( $dir)

Return if path is empty.

Parameters
string$dirPath of Directory
Returns
boolean True or false

Definition at line 470 of file files.lib.php.

◆ dol_is_file()

◆ dol_is_link()

dol_is_link ( $pathoffile)

Return if path is a symbolic link.

Parameters
string$pathoffilePath of file
Returns
boolean True or false

Definition at line 496 of file files.lib.php.

References dol_osencode().

◆ dol_is_url()

dol_is_url ( $url)

Return if path is an URL.

Parameters
string$urlUrl
Returns
boolean True or false

Definition at line 508 of file files.lib.php.

Referenced by RssParser\parser().

◆ dol_meta_create()

dol_meta_create ( $object)

Create a meta file with document file into same directory.

This make "grep" search possible. This feature to generate the meta file is enabled only if option MAIN_DOC_CREATE_METAFILE is set.

Parameters
CommonObject$objectObject
Returns
int 0 if do nothing, >0 if we update meta file too, <0 if KO

Definition at line 1639 of file files.lib.php.

References dol_mkdir(), dol_print_date(), dol_sanitizeFileName(), dol_syslog(), dolChmod(), and getDolGlobalString().

Referenced by CommonObject\commonGenerateDocument().

◆ dol_most_recent_file()

dol_most_recent_file ( $dir,
$regexfilter = '',
$excludefilter = array('(\.meta|_preview.*\.png)$', '^\.'),
$nohook = false,
$mode = '' )

Return file(s) into a directory (by default most recent)

Parameters
string$dirDirectory to scan
string$regexfilterRegex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function
array$excludefilterArray of Regex for exclude filter (example: array('(.meta|_preview.*.png)$','^.')). This regex value must be escaped for '/', since this char is used for preg_match function
int$nohookDisable all hooks
int$mode0=Return array minimum keys loaded (faster), 1=Force all keys like date and size to be loaded (slower), 2=Force load of date only, 3=Force load of size only
Returns
array Array with properties (full path, date, ...) of to most recent file

Definition at line 2553 of file files.lib.php.

References dol_dir_list().

Referenced by Utils\sendBackup().

◆ dol_move()

dol_move ( $srcfile,
$destfile,
$newmask = 0,
$overwriteifexists = 1,
$testvirus = 0,
$indexdatabase = 1,
$moreinfo = array() )

Move a file into another name.

Note:

  • This function differs from dol_move_uploaded_file, because it can be called in any context.
  • Database indexes for files are updated.
  • Test on antivirus is done only if param testvirus is provided and an antivirus was set.
Parameters
string$srcfileSource file (can't be a directory. use native php @rename() to move a directory)
string$destfileDestination file (can't be a directory. use native php @rename() to move a directory)
integer$newmaskMask in octal string for new file (0 by default means $conf->global->MAIN_UMASK)
int$overwriteifexistsOverwrite file if exists (1 by default)
int$testvirusDo an antivirus test. Move is canceled if a virus is found.
int$indexdatabaseIndex new file into database.
int$moreinfoArray with more information
Returns
boolean True if OK, false if KO
See also
dol_move_uploaded_file()

Definition at line 949 of file files.lib.php.

References dol_delete_file(), dol_is_file(), dol_osencode(), dol_syslog(), dolCheckVirus(), dolChmod(), getDolGlobalString(), and setEventMessages().

Referenced by ActionComm\build_exportfile(), Utils\compressSyslogs(), Ticket\copyFilesForTicket(), dol_move_dir(), dolReplaceInFile(), dolSavePageContent(), CMailFile\dump_mail(), Utils\dumpDatabase(), Website\importWebSite(), Societe\mergeCompany(), migrate_product_photospath(), migrate_user_filespath(), Documents\post(), and CMailFile\save_dump_mail_in_err().

◆ dol_move_dir()

dol_move_dir ( $srcdir,
$destdir,
$overwriteifexists = 1,
$indexdatabase = 1,
$renamedircontent = 1 )

Move a directory into another name.

Parameters
string$srcdirSource directory
string$destdirDestination directory
int$overwriteifexistsOverwrite directory if exists (1 by default)
int$indexdatabaseIndex new name of files into database.
int$renamedircontentAlso rename contents inside srcdir after the move to match new destination name.
Returns
boolean True if OK, false if KO

Definition at line 1106 of file files.lib.php.

References dol_dir_list(), dol_is_dir(), dol_move(), dol_move_dir(), dol_osencode(), and dol_syslog().

Referenced by dol_move_dir(), and Task\update().

◆ dol_move_uploaded_file()

dol_move_uploaded_file ( $src_file,
$dest_file,
$allowoverwrite,
$disablevirusscan = 0,
$uploaderrorcode = 0,
$nohook = 0,
$varfiles = 'addedfile',
$upload_dir = '' )

Make control on an uploaded file from an GUI page and move it to final destination.

If there is errors (virus found, antivir in error, bad filename), file is not moved. Note:

  • This function can be used only into a HTML page context. Use dol_move if you are outside.
  • Test on antivirus is always done (if antivirus set).
  • Database of files is NOT updated (this is done by dol_add_file_process() that calls this function).
  • Extension .noexe may be added if file is executable and MAIN_DOCUMENT_IS_OUTSIDE_WEBROOT_SO_NOEXE_NOT_REQUIRED is not set.
Parameters
string$src_fileSource full path filename ($_FILES['field']['tmp_name'])
string$dest_fileTarget full path filename ($_FILES['field']['name'])
int$allowoverwrite1=Overwrite target file if it already exists
int$disablevirusscan1=Disable virus scan
integer$uploaderrorcodeValue of PHP upload error code ($_FILES['field']['error'])
int$nohookDisable all hooks
string$varfiles_FILES var name
string$upload_dirFor information. Already included into $dest_file.
Returns
int|string 1 if OK, 2 if OK and .noexe appended, <0 or string if KO
See also
dol_move()

Definition at line 1220 of file files.lib.php.

References dol_osencode(), dol_syslog(), dolCheckVirus(), dolChmod(), getDolGlobalInt(), getDolGlobalString(), and isAFileWithExecutableContent().

Referenced by Categorie\add_photo(), Product\add_photo(), mailing_xinputfile\add_to_target(), dol_add_file_process(), and FileUpload\handleFileUpload().

◆ dol_readcachefile()

dol_readcachefile ( $directory,
$filename )

Read object from cachefile.

Parameters
string$directoryDirectory of cache
string$filenameName of filecache
Returns
mixed Unserialise from file

Definition at line 3382 of file files.lib.php.

Referenced by ModeleBoxes\showBox().

◆ dol_remove_file_process()

dol_remove_file_process ( $filenb,
$donotupdatesession = 0,
$donotdeletefile = 1,
$trackid = '' )

Remove an uploaded file (for example after submitting a new file a mail form).

All information used are in db, conf, langs, user and _FILES.

Parameters
int$filenbFile nb to delete
int$donotupdatesession-1 or 1 = Do not update _SESSION variable
int$donotdeletefile1=Do not delete physically file
string$trackidTrack id (used to prefix name of session vars to avoid conflict)
Returns
void
See also
dol_add_file_process()

Definition at line 1939 of file files.lib.php.

References dol_delete_file(), and setEventMessages().

◆ dol_uncompress()

dol_uncompress ( $inputfile,
$outputdir )

Uncompress a file.

Parameters
string$inputfileFile to uncompress
string$outputdirTarget dir name
Returns
array array('error'=>'Error code') or array() if no error
See also
dol_compress_file(), dol_compress_dir()

Definition at line 2307 of file files.lib.php.

References dol_delete_file(), dol_mkdir(), dol_sanitizeFileName(), dol_sanitizePathName(), dol_syslog(), and getDolGlobalString().

Referenced by Website\importWebSite().

◆ dol_unescapefile()

dol_unescapefile ( $filename)

Unescape a file submitted by upload.

PHP escape char " (%22) or char ' (%27) into $FILES.

Parameters
string$filenameFilename
Returns
string Filename sanitized

Definition at line 1166 of file files.lib.php.

◆ dolCheckVirus()

dolCheckVirus ( $src_file)

Check virus into a file.

Parameters
string$src_fileSource file to check
Returns
array Array of errors or empty array if not virus found

Definition at line 1181 of file files.lib.php.

References getDolGlobalString().

Referenced by dol_copy(), dol_move(), dol_move_uploaded_file(), and Documents\post().

◆ dolCopyDir()

dolCopyDir ( $srcfile,
$destfile,
$newmask,
$overwriteifexists,
$arrayreplacement = null,
$excludesubdir = 0,
$excludefileext = null )

Copy a dir to another dir.

This include recursive subdirectories.

Parameters
string$srcfileSource file (a directory)
string$destfileDestination file (a directory)
int$newmaskMask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666'
int$overwriteifexistsOverwrite file if exists (1 by default)
array$arrayreplacementArray to use to replace filenames with another one during the copy (works only on file names, not on directory names).
int$excludesubdir0=Do not exclude subdirectories, 1=Exclude subdirectories, 2=Exclude subdirectories if name is not a 2 chars (used for country codes subdirectories).
array$excludefileextExclude some file extensions
Returns
int Return integer <0 if error, 0 if nothing done (all files already exists and overwriteifexists=0), >0 if OK
See also
dol_copy()

Definition at line 846 of file files.lib.php.

References dol_copy(), dol_is_dir(), dol_mkdir(), dol_osencode(), dol_syslog(), dolCopyDir(), and getDolGlobalString().

Referenced by Website\createFromClone(), dolCopyDir(), Website\exportWebSite(), Website\importWebSite(), and modWebsite\init().

◆ dolReplaceInFile()

dolReplaceInFile ( $srcfile,
$arrayreplacement,
$destfile = '',
$newmask = 0,
$indexdatabase = 0,
$arrayreplacementisregex = 0 )

Make replacement of strings into a file.

Parameters
string$srcfileSource file (can't be a directory)
array$arrayreplacementArray with strings to replace. Example: array('valuebefore'=>'valueafter', ...)
string$destfileDestination file (can't be a directory). If empty, will be same than source file.
int$newmaskMask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666'
int$indexdatabase1=index new file into database.
int$arrayreplacementisregex1=Array of replacement is already an array with key that is a regex. Warning: the key must be escaped with preg_quote for '/'
Returns
int Return integer <0 if error, 0 if nothing done (dest file already exists), >0 if OK
See also
dol_copy()

Definition at line 630 of file files.lib.php.

References dol_delete_file(), dol_is_file(), dol_move(), dol_osencode(), dol_syslog(), dolChmod(), getDolGlobalString(), and make_substitutions().

Referenced by addObjectsToApiFile(), deletePerms(), Website\exportWebSite(), Utils\generateDoc(), Website\importWebSite(), removeObjectFromApiFile(), reWriteAllMenus(), reWriteAllPermissions(), updateDictionaryInFile(), writeApiUrlsInDoc(), writePermsInAsciiDoc(), and writePropsInAsciiDoc().

◆ dragAndDropFileUpload()

dragAndDropFileUpload ( $htmlname)

Function to manage the drag and drop of a file.

We use global variable $object

Parameters
string$htmlnameThe id of the component where we need to drag and drop
Returns
string Js script to display

Definition at line 3456 of file files.lib.php.

References currentToken(), dol_escape_js(), and img_picto().

Referenced by dol_get_fiche_head().

◆ getFilesUpdated()

getFilesUpdated ( & $file_list,
SimpleXMLElement $dir,
$path = '',
$pathref = '',
& $checksumconcat = array() )

Function to get list of updated or modified files.

$file_list is used as global variable

Parameters
array$file_listArray for response
SimpleXMLElement$dirSimpleXMLElement of files to test
string$pathPath of files relative to $pathref. We start with ''. Used by recursive calls.
string$pathrefPath ref (DOL_DOCUMENT_ROOT)
array$checksumconcatArray of checksum
Returns
array Array of filenames

Definition at line 3412 of file files.lib.php.

References getFilesUpdated().

Referenced by Setup\getCheckIntegrity(), and getFilesUpdated().