Skip to content
Snippets Groups Projects
Commit 8919664d authored by Frédéric Carretero's avatar Frédéric Carretero
Browse files

uploadFileToLocal() -> upload d'un fichier vers un chemin local.

parent d23a7dc9
No related branches found
No related tags found
No related merge requests found
...@@ -1385,4 +1385,153 @@ function getDatePattern($sUserDateFormat, $sDateType) { ...@@ -1385,4 +1385,153 @@ function getDatePattern($sUserDateFormat, $sDateType) {
} }
return $Pattern; return $Pattern;
} }
/**
*This method allow to upload a file on a server.
*@file vmlib/phpUtil.inc
*@param $sNomObjet Name of the object.
*@param $sFileType Type of file needed.
*@param $sServerPath New path of the file.
*@param $sMaxSize Maximal size of the file.
*@return $sErrorMsg The error message.
*/
function uploadFileToLocal($sNomObjet, $sFileType, $sServerPath, $sMaxSize) {
global $properties, $sFolderLib;
loadLang($sFolderLib, $properties["language"], $sFolderLib . "/");
$aExtensionPicture = array('gif', 'jpg', 'jpeg', 'png');
$aExtensionPictureAndPdf = array('gif', 'jpg', 'jpeg', 'png', 'pdf');
$aExtensionFile = array('pdf', 'gif', 'jpg', 'jpeg', 'png', 'txt');
$aExtensionZip = array('zip', 'gex');
$aExtensionFmw = array('fmw');
$aForbiddenExtension = explode('|', str_replace("*.", "", $properties['forbidden_extension']));
$sTmpFile = $_FILES[$sNomObjet]['tmp_name'];
// Si l'utilisateur n'a indiqué aucun fichier à uploader, il ne se passe rien
$sErrorMsg = "";
if ($sTmpFile == '') {
if ($_FILES[$sNomObjet]['name'] != "") {
switch ($_FILES[$sNomObjet]['error']) {
case "1" :
$sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_UPLOAD_MAX_FILE_SIZE;
break;
case "2" :
$sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MAX_FILE_SIZE;
break;
case "3" :
$sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PARTIAL_DOWNLOAD;
break;
case "4" :
$sErrorMsg = ERROR_NO_FILE_DOWNLOADED;
break;
case "6" :
$sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_MISSING_TEMP_FOLDER;
break;
case "7" :
$sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_WRITING_DISK;
break;
case "8" :
$sErrorMsg = ERROR_DOWNLOAD_FILE . $_FILES[$sNomObjet]['name'] . " : " . ERROR_PHP_EXT_SEND;
break;
}
writeToErrorLog($sErrorMsg);
}
return $sErrorMsg;
}
$aTemp = explode("\\", $sServerPath);
if (is_uploaded_file($sTmpFile)) {
if (!in_array(extension($aTemp[count($aTemp) - 1]), $aForbiddenExtension)) {
//Teste si le fichier correspont au format voulu.
$bAllowUpload = false;
$sFormat = "";
switch ($sFileType) {
case "image" :
if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPicture)) {
$bAllowUpload = true;
} else {
foreach ($aExtensionPicture as $sValue) {
$sFormat .= " " . $sValue;
}
writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType);
$sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.';
}
break;
case "image-pdf" :
if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionPictureAndPdf)) {
$bAllowUpload = true;
} else {
foreach ($aExtensionPictureAndPdf as $sValue) {
$sFormat .= " " . $sValue;
}
writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType);
$sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.';
}
break;
case "document" :
if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFile)) {
$bAllowUpload = true;
} else {
foreach ($aExtensionFile as $sValue) {
$sFormat .= " " . $sValue;
}
writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType);
$sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.';
}
break;
case "zip" :
if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionZip)) {
$bAllowUpload = true;
} else {
foreach ($aExtensionZip as $sValue) {
$sFormat .= " " . $sValue;
}
writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType);
$sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.';
}
break;
case "fmw" :
if (in_array(extension($aTemp[count($aTemp) - 1]), $aExtensionFmw)) {
$bAllowUpload = true;
} else {
foreach ($aExtensionFmw as $sValue) {
$sFormat .= " " . $sValue;
}
writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType);
$sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.';
}
break;
default :
$bAllowUpload = true;
break;
}
//Teste si le fichier n'est pas de trop grande taille.
if ($_FILES[$sNomObjet]['size'] > $sMaxSize || $_FILES[$sNomObjet]['error'] == 1) {
$bAllowUpload = false;
if ($_FILES[$sNomObjet]['size'] > $sMaxSize)
$sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . OF_LABEL_PHPUTIL . $_FILES[$sNomObjet]['size'] . ERROR_EXCEED_MAX_SIZE . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').';
if ($_FILES[$sNomObjet]['error'] > $sMaxSize)
$sErrorMsg .= FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_EXCEED_MAX_SIZE_PHP . ' (' . $sMaxSize . LABEL_BYTES_PHPUTIL . ').';
}
//Lance l'upload.
if ($bAllowUpload) {
if (!copy($sTmpFile, $sServerPath)) {
writeToErrorLog(ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . ', ' . $sTmpFile . ', ' . $sServerPath);
$sErrorMsg = ERROR_COPYING_FILE . $_FILES[$sNomObjet]['name'] . ON_SERVER_PHPUTIL . '.';
}
unlink($sTmpFile);
//chmod($sServerPath,755);
}
} else {
writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType);
$sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_NOT_FILE . $sFileType . ERROR_VALID_FILE . $sFormat . '.';
}
} else {
writeToErrorLog(ERROR_FILE . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER);
$sErrorMsg = FILE_LABEL_PHPUTIL . $_FILES[$sNomObjet]['name'] . ERROR_DOWNLOAD_SERVER . ' (' . ERROR_CODE_PHPUTIL . $_FILES[$sNomObjet]['error'] . ').';
}
return $sErrorMsg;
}
?> ?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment