dolibarr  20.0.0-beta
Functions
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). More...
 
 dol_dir_list ($utf8_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. More...
 
 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. More...
 
 completeFileArrayWithDatabaseInfo (&$filearray, $relativedir)
 Complete $filearray with data from database. More...
 
 dol_compare_file ($a, $b)
 Fast compare of 2 files identified by their properties ->name, ->date and ->size. More...
 
 dol_is_dir ($folder)
 Test if filename is a directory. More...
 
 dol_is_dir_empty ($dir)
 Return if path is empty. More...
 
 dol_is_file ($pathoffile)
 Return if path is a file. More...
 
 dol_is_link ($pathoffile)
 Return if path is a symbolic link. More...
 
 dol_is_writable ($folderorfile)
 Test if directory or filename is writable. More...
 
 dol_is_url ($uri)
 Return if path is an URI (the name of the method is misleading). More...
 
 dol_dir_is_emtpy ($folder)
 Test if a folder is empty. More...
 
 dol_count_nb_of_line ($file)
 Count number of lines in a file. More...
 
 dol_filesize ($pathoffile)
 Return size of a file. More...
 
 dol_filemtime ($pathoffile)
 Return time of a file. More...
 
 dol_fileperm ($pathoffile)
 Return permissions of a file. More...
 
 dolReplaceInFile ($srcfile, $arrayreplacement, $destfile='', $newmask='0', $indexdatabase=0, $arrayreplacementisregex=0)
 Make replacement of strings into a file. More...
 
 dol_copy ($srcfile, $destfile, $newmask='0', $overwriteifexists=1, $testvirus=0, $indexdatabase=0)
 Copy a file to another file. More...
 
 dolCopyDir ($srcfile, $destfile, $newmask, $overwriteifexists, $arrayreplacement=null, $excludesubdir=0, $excludefileext=null, $excludearchivefiles=0)
 Copy a dir to another dir. More...
 
 dol_move ($srcfile, $destfile, $newmask='0', $overwriteifexists=1, $testvirus=0, $indexdatabase=1, $moreinfo=array())
 Move a file into another name. More...
 
 dol_move_dir ($srcdir, $destdir, $overwriteifexists=1, $indexdatabase=1, $renamedircontent=1)
 Move a directory into another name. More...
 
 dol_unescapefile ($filename)
 Unescape a file submitted by upload. More...
 
 dolCheckVirus ($src_file, $dest_file='')
 Check virus into a file. More...
 
 dolCheckOnFileName ($src_file, $dest_file='')
 Check virus into a file. More...
 
 dol_move_uploaded_file ($src_file, $dest_file, $allowoverwrite, $disablevirusscan=0, $uploaderrorcode=0, $nohook=0, $varfiles='addedfile', $upload_dir='')
 Check validity of a file upload from an GUI page, and move it to its final destination. More...
 
 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. More...
 
 dol_delete_dir ($dir, $nophperrors=0)
 Remove a directory (not recursive, so content must be empty). More...
 
 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) More...
 
 dol_delete_preview ($object)
 Delete all preview files linked to object instance. More...
 
 dol_meta_create ($object)
 Create a meta file with document file into same directory. More...
 
 dol_init_file_process ($pathtoscan='', $trackid='')
 Scan a directory and init $_SESSION to manage uploaded files with list of all found files. More...
 
 dol_add_file_process ($upload_dir, $allowoverwrite=0, $updatesessionordb=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). More...
 
 dol_remove_file_process ($filenb, $donotupdatesession=0, $donotdeletefile=1, $trackid='')
 Remove an uploaded file (for example after submitting a new file a mail form). More...
 
 addFileIntoDatabaseIndex ($dir, $file, $fullpathorig='', $mode='uploaded', $setsharekey=0, $object=null)
 Add a file into database index. More...
 
 deleteFilesIntoDatabaseIndex ($dir, $file, $mode='uploaded')
 Delete files into database index using search criteria. More...
 
 dol_convert_file ($fileinput, $ext='png', $fileoutput='', $page='')
 Convert an image file or a PDF into another image format. More...
 
 dol_uncompress ($inputfile, $outputdir)
 Uncompress a file. More...
 
 dol_most_recent_file ($dir, $regexfilter='', $excludefilter=array('(\.meta|_preview.*\.png)$', '^\.'), $nohook=0, $mode=0)
 Return file(s) into a directory (by default most recent) More...
 
 dol_check_secure_access_document ($modulepart, $original_file, $entity, $fuser=null, $refname='', $mode='read')
 Security check when accessing to a document (used by document.php, viewimage.php and webservices to get documents). More...
 
 dol_filecache ($directory, $filename, $object)
 Store object in file. More...
 
 dol_cache_refresh ($directory, $filename, $cachetime)
 Test if Refresh needed. More...
 
 dol_readcachefile ($directory, $filename)
 Read object from cachefile. More...
 
 dirbasename ($pathfile)
 Return the relative dirname (relative to DOL_DATA_ROOT) of a full path string. More...
 
 getFilesUpdated (&$file_list, SimpleXMLElement $dir, $path='', $pathref='', &$checksumconcat=array())
 Function to get list of updated or modified files. More...
 
 dragAndDropFileUpload ($htmlname)
 Function to manage the drag and drop of a file. More...
 
 archiveOrBackupFile ($filetpl, $max_versions=5, $archivedir='', $suffix="v", $moveorcopy='move')
 Manage backup versions for a given file, ensuring only a maximum number of versions are kept. More...
 

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 2101 of file files.lib.php.

◆ archiveOrBackupFile()

archiveOrBackupFile (   $filetpl,
  $max_versions = 5,
  $archivedir = '',
  $suffix = "v",
  $moveorcopy = 'move' 
)

Manage backup versions for a given file, ensuring only a maximum number of versions are kept.

Parameters
string$filetplFull path of the source filename for the backups. Example /mydir/mydocuments/mymodule/filename.ext
int$max_versionsThe maximum number of backup versions to keep.
string$archivedirTarget directory of backups (without ending /). Keep empty to save into the same directory than source file.
string$suffix'v' (versioned files) or 'd' (archived files after deletion)
string$moveorcopy'move' or 'copy'
Returns
bool Returns true if successful, false otherwise.

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

◆ completeFileArrayWithDatabaseInfo()

completeFileArrayWithDatabaseInfo ( $filearray,
  $relativedir 
)

Complete $filearray with data from database.

This will call doldir_list_indatabase to complete filearray.

Parameters
array<array{name:string,path:string,level1name:string,relativename:string,fullname:string,date:string,size:int,perm:int,type:string}>$filearray Array of array('name'=>'xxx','fullname'=>'/abc/xxx','date'=>'yyy','size'=>99,'type'=>'dir|file',...) Array of files obtained using dol_dir_list
string$relativedirRelative dir from DOL_DATA_ROOT
Returns
void

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

◆ deleteFilesIntoDatabaseIndex()

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

Delete files into database index using search criteria.

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 2207 of file files.lib.php.

◆ 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 3557 of file files.lib.php.

◆ dol_add_file_process()

dol_add_file_process (   $upload_dir,
  $allowoverwrite = 0,
  $updatesessionordb = 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$updatesessionordb1=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 1862 of file files.lib.php.

◆ dol_basename()

dol_basename (   $pathfile)

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

We suppose dir separator for input is '/'.

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

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

◆ 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 3529 of file files.lib.php.

◆ dol_check_secure_access_document()

dol_check_secure_access_document (   $modulepart,
  $original_file,
  $entity,
  $fuser = null,
  $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 2725 of file files.lib.php.

◆ 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 446 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 2266 of file files.lib.php.

◆ 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)
string$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 767 of file files.lib.php.

◆ 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 602 of file files.lib.php.

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 1584 of file files.lib.php.

◆ 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 1609 of file files.lib.php.

◆ 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 | null$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 1458 of file files.lib.php.

◆ 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 1661 of file files.lib.php.

◆ 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 569 of file files.lib.php.

◆ dol_dir_list()

dol_dir_list (   $utf8_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$utf8_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.
string | string[]$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')
int$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.
int$donotfollowsymlinksDo not follow symbolic links
int$nbsecondsoldOnly files older than $nbsecondsold
Returns
array<array{name:string,path:string,level1name:string,relativename:string,fullname:string,date:string,size:int,perm:int,type:string}> 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 63 of file files.lib.php.

Referenced by Website\compareFichierModifie(), and dolGetListOfObjectClasses().

◆ 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
string[] | null$excludefilterArray of Regex for exclude filter (example: array('(.meta|_preview.*.png)$','^.'))
string$sortcriteriaSort criteria ("","fullname","name","date","size")
int$sortorderSort order (SORT_ASC, SORT_DESC)
int$mode0=Return array minimum keys loaded (faster), 1=Force all keys like description
Returns
array<array{rowid:string,label:string,name:string,path:string,level1name:string,fullname:string,fullpath_orig:string,date_c:string,date_m:string,type:string,keywords:string,cover:string,position:int,acl:string,share:string,description:string}> Array of array('name'=>'xxx','fullname'=>'/abc/xxx','date'=>'yyy','size'=>99,'type'=>'dir|file',...)
See also
dol_dir_list()

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

◆ 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 3506 of file files.lib.php.

◆ dol_filemtime()

dol_filemtime (   $pathoffile)

Return time of a file.

Parameters
string$pathoffilePath of file
Returns
int Time of file

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

References dol_osencode().

◆ dol_fileperm()

dol_fileperm (   $pathoffile)

Return permissions of a file.

Parameters
string$pathoffilePath of file
Returns
integer File permissions

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

References dol_osencode().

◆ 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 635 of file files.lib.php.

References dol_osencode().

◆ 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 1824 of file files.lib.php.

◆ dol_is_dir()

dol_is_dir (   $folder)

Test if filename is a directory.

Parameters
string$folderName of folder
Returns
boolean True if it's a directory, False if not found

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

◆ 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 505 of file files.lib.php.

◆ dol_is_file()

dol_is_file (   $pathoffile)

Return if path is a file.

Parameters
string$pathoffilePath of file
Returns
boolean True or false

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

References dol_osencode().

Referenced by FileUpload\getFileObject().

◆ 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 531 of file files.lib.php.

References dol_osencode().

◆ dol_is_url()

dol_is_url (   $uri)

Return if path is an URI (the name of the method is misleading).

URLs are addresses for websites, URI refer to online resources.

Parameters
string$uriURI to test
Returns
boolean True if the path looks like a URI, else false.

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

◆ dol_is_writable()

dol_is_writable (   $folderorfile)

Test if directory or filename is writable.

Parameters
string$folderorfileName of folder or filename
Returns
boolean True if it's writable, False if not found

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

References dol_osencode().

◆ 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 1739 of file files.lib.php.

◆ dol_most_recent_file()

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

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
string[]$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<0,1>$nohook Disable all hooks
int<0,3>$mode 0=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
null|array{name:string,path:string,level1name:string,relativename:string,fullname:string,date:string,size:int,perm:int,type:string} null if none or Array with properties (full path, date, ...) of the most recent file

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

◆ 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 virus 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)
string$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.
array$moreinfoArray with more information to set in index table
Returns
boolean True if OK, false if KO
See also
dol_move_uploaded_file()

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

◆ 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 1175 of file files.lib.php.

◆ dol_move_uploaded_file()

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

Check validity of a file upload from an GUI page, and move it to its 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 1320 of file files.lib.php.

◆ 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 3544 of file files.lib.php.

◆ 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 2043 of file files.lib.php.

◆ 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 2452 of file files.lib.php.

◆ 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 1235 of file files.lib.php.

◆ dolCheckOnFileName()

dolCheckOnFileName (   $src_file,
  $dest_file = '' 
)

Check virus into a file.

Parameters
string$src_fileSource file to check
string$dest_fileDestination file name (to know the expected type)
Returns
string[] Array of errors, or empty array if not virus found

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

References dol_syslog(), and getDolGlobalString().

◆ dolCheckVirus()

dolCheckVirus (   $src_file,
  $dest_file = '' 
)

Check virus into a file.

Parameters
string$src_fileSource file to check
string$dest_fileDestination file name (to know the expected type)
Returns
string[] Array of errors, or empty array if not virus found

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

◆ dolCopyDir()

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

Copy a dir to another dir.

This include recursive subdirectories.

Parameters
string$srcfileSource file (a directory)
string$destfileDestination file (a directory)
string$newmaskMask for new file ('0' by default means getDolGlobalString('MAIN_UMASK')). Example: '0666'
int$overwriteifexistsOverwrite file if exists (1 by default)
array<string,string>$arrayreplacement Array 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).
string[]$excludefileextExclude some file extensions
int$excludearchivefilesExclude archive files that begin with v+timestamp or d+timestamp (0 by default)
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 896 of file files.lib.php.

◆ 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<string,string>$arrayreplacement Array with strings to replace. Example: array('valuebefore'=>'valueafter', ...)
string$destfileDestination file (can't be a directory). If empty, will be same than source file.
string$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(), dolCopyDir()

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

◆ 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 3616 of file files.lib.php.

◆ 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 3574 of file files.lib.php.