mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-14 13:42:04 +00:00
add hook for retrieving more uploaded files from post data
This commit is contained in:
parent
e0a12590da
commit
4149c33b39
|
@ -237,25 +237,43 @@ if($settings->_workflowMode == 'traditional' || $settings->_workflowMode == 'tra
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$docsource = 'upload';
|
function reArrayFiles(&$file_post) {
|
||||||
|
$file_ary = array();
|
||||||
|
$file_count = count($file_post['name']);
|
||||||
|
$file_keys = array_keys($file_post);
|
||||||
|
|
||||||
|
for ($i=0; $i<$file_count; $i++) {
|
||||||
|
if($file_post['error'][$i] != 4) { // no file uploaded
|
||||||
|
foreach ($file_keys as $key) {
|
||||||
|
$file_ary[$i][$key] = $file_post[$key][$i];
|
||||||
|
}
|
||||||
|
$file_ary[$i]['source'] = 'upload';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $file_ary;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_FILES['userfile']) {
|
||||||
|
$file_ary = reArrayFiles($_FILES['userfile']);
|
||||||
|
} else {
|
||||||
|
$file_ary = array();
|
||||||
|
}
|
||||||
|
|
||||||
if($settings->_dropFolderDir) {
|
if($settings->_dropFolderDir) {
|
||||||
if(isset($_POST["dropfolderfileform1"]) && $_POST["dropfolderfileform1"]) {
|
if(isset($_POST["dropfolderfileadddocform"]) && $_POST["dropfolderfileadddocform"]) {
|
||||||
$fullfile = $settings->_dropFolderDir.'/'.$user->getLogin().'/'.$_POST["dropfolderfileform1"];
|
$fullfile = $settings->_dropFolderDir.'/'.$user->getLogin().'/'.$_POST["dropfolderfileadddocform"];
|
||||||
if(file_exists($fullfile)) {
|
if(file_exists($fullfile)) {
|
||||||
$docsource = 'dropfolder';
|
|
||||||
/* Check if a local file is uploaded as well */
|
|
||||||
if(isset($_FILES["userfile"]['error'][0])) {
|
|
||||||
if($_FILES["userfile"]['error'][0] != 0)
|
|
||||||
$_FILES["userfile"] = array();
|
|
||||||
}
|
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
$mimetype = finfo_file($finfo, $fullfile);
|
$mimetype = finfo_file($finfo, $fullfile);
|
||||||
$_FILES["userfile"]['tmp_name'][] = $fullfile;
|
$file_ary[] = array(
|
||||||
$_FILES["userfile"]['type'][] = $mimetype;
|
'tmp_name' => $fullfile,
|
||||||
$_FILES["userfile"]['name'][] = $_POST["dropfolderfileform1"];
|
'type' => $mimetype,
|
||||||
$_FILES["userfile"]['size'][] = filesize($fullfile);
|
'name' => $_POST["dropfolderfileadddocform"],
|
||||||
$_FILES["userfile"]['error'][] = 0;
|
'size' => filesize($fullfile),
|
||||||
|
'error' => 0,
|
||||||
|
'source' => 'dropfolder'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -269,15 +287,26 @@ if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-upload
|
||||||
if(file_exists($fullfile)) {
|
if(file_exists($fullfile)) {
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
$mimetype = finfo_file($finfo, $fullfile);
|
$mimetype = finfo_file($finfo, $fullfile);
|
||||||
$_FILES["userfile"]['tmp_name'][] = $fullfile;
|
$file_ary[] = array(
|
||||||
$_FILES["userfile"]['type'][] = $mimetype;
|
'tmp_name' => $fullfile,
|
||||||
$_FILES["userfile"]['name'][] = isset($names[$i]) ? $names[$i] : $uuid;
|
'type' => $mimetype,
|
||||||
$_FILES["userfile"]['size'][] = filesize($fullfile);
|
'name' => isset($names[$i]) ? $names[$i] : $uuid,
|
||||||
$_FILES["userfile"]['error'][] = 0;
|
'size' => filesize($fullfile),
|
||||||
|
'error' => 0,
|
||||||
|
'source' => 'upload',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($controller->hasHook('getDocument')) {
|
||||||
|
$file_ary = array_merge($file_ary, $controller->callHook('getDocument', $_POST));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$file_ary) {
|
||||||
|
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed"));
|
||||||
|
}
|
||||||
|
|
||||||
/* Check if additional notification shall be added */
|
/* Check if additional notification shall be added */
|
||||||
$notusers = array();
|
$notusers = array();
|
||||||
if(!empty($_POST['notification_users'])) {
|
if(!empty($_POST['notification_users'])) {
|
||||||
|
@ -300,22 +329,22 @@ if(!empty($_POST['notification_groups'])) {
|
||||||
|
|
||||||
/* Check files for Errors first */
|
/* Check files for Errors first */
|
||||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
foreach($file_ary as $file) {
|
||||||
if ($_FILES["userfile"]["size"][$file_num]==0) {
|
if ($file["size"]==0) {
|
||||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_zerosize"));
|
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_zerosize"));
|
||||||
}
|
}
|
||||||
if ($maxuploadsize && $_FILES["userfile"]["size"][$file_num] > $maxuploadsize) {
|
if ($maxuploadsize && $file["size"] > $maxuploadsize) {
|
||||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_maxsize"));
|
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_maxsize"));
|
||||||
}
|
}
|
||||||
if (/* is_uploaded_file($_FILES["userfile"]["tmp_name"][$file_num]) && */$_FILES['userfile']['error'][$file_num]!=0){
|
if($file['error']!=0) {
|
||||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed"));
|
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
foreach($file_ary as $file) {
|
||||||
$userfiletmp = $_FILES["userfile"]["tmp_name"][$file_num];
|
$userfiletmp = $file["tmp_name"];
|
||||||
$userfiletype = $_FILES["userfile"]["type"][$file_num];
|
$userfiletype = $file["type"];
|
||||||
$userfilename = $_FILES["userfile"]["name"][$file_num];
|
$userfilename = $file["name"];
|
||||||
|
|
||||||
$fileType = ".".pathinfo($userfilename, PATHINFO_EXTENSION);
|
$fileType = ".".pathinfo($userfilename, PATHINFO_EXTENSION);
|
||||||
|
|
||||||
|
@ -326,7 +355,7 @@ for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||||
$userfiletype = $tmpfiletype;
|
$userfiletype = $tmpfiletype;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((count($_FILES["userfile"]["tmp_name"])==1)&&($_POST["name"]!=""))
|
if (!$file["tmp_name"] && ($_POST["name"]!=""))
|
||||||
$name = trim($_POST["name"]);
|
$name = trim($_POST["name"]);
|
||||||
else $name = utf8_basename($userfilename);
|
else $name = utf8_basename($userfilename);
|
||||||
|
|
||||||
|
@ -337,7 +366,7 @@ for ($file_num=0;$file_num<count($_FILES["userfile"]["tmp_name"]);$file_num++){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$controller->setParam('documentsource', $docsource);
|
$controller->setParam('documentsource', $file['source']);
|
||||||
$controller->setParam('folder', $folder);
|
$controller->setParam('folder', $folder);
|
||||||
$controller->setParam('fulltextservice', $fulltextservice);
|
$controller->setParam('fulltextservice', $fulltextservice);
|
||||||
$controller->setParam('name', $name);
|
$controller->setParam('name', $name);
|
||||||
|
|
|
@ -67,6 +67,38 @@ if ($document->isLocked()) {
|
||||||
else $document->setLocked(false);
|
else $document->setLocked(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function reArrayFiles(&$file_post) {
|
||||||
|
$file_post['source'] = 'upload';
|
||||||
|
if($file_post['error'] != 4) // no file uploaded
|
||||||
|
return array($file_post);
|
||||||
|
else
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_FILES['userfile']) {
|
||||||
|
$file_ary = reArrayFiles($_FILES['userfile']);
|
||||||
|
} else {
|
||||||
|
$file_ary = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
if($settings->_dropFolderDir) {
|
||||||
|
if(isset($_POST["dropfolderfileform1"]) && $_POST["dropfolderfileform1"]) {
|
||||||
|
$fullfile = $settings->_dropFolderDir.'/'.$user->getLogin().'/'.$_POST["dropfolderfileform1"];
|
||||||
|
if(file_exists($fullfile)) {
|
||||||
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
|
$mimetype = finfo_file($finfo, $fullfile);
|
||||||
|
$file_ary[] = array(
|
||||||
|
'tmp_name' => $fullfile,
|
||||||
|
'type' => $mimetype,
|
||||||
|
'name' => $_POST["dropfolderfileform1"],
|
||||||
|
'size' => filesize($fullfile),
|
||||||
|
'error' => 0,
|
||||||
|
'source' => 'dropfolder'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$prefix = 'userfile';
|
$prefix = 'userfile';
|
||||||
if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-uploader-uuids']) {
|
if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-uploader-uuids']) {
|
||||||
$uuids = explode(';', $_POST[$prefix.'-fine-uploader-uuids']);
|
$uuids = explode(';', $_POST[$prefix.'-fine-uploader-uuids']);
|
||||||
|
@ -76,29 +108,38 @@ if(isset($_POST[$prefix.'-fine-uploader-uuids']) && $_POST[$prefix.'-fine-upload
|
||||||
if(file_exists($fullfile)) {
|
if(file_exists($fullfile)) {
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
$mimetype = finfo_file($finfo, $fullfile);
|
$mimetype = finfo_file($finfo, $fullfile);
|
||||||
$_FILES["userfile"]['tmp_name'] = $fullfile;
|
$file_ary[] = array(
|
||||||
$_FILES["userfile"]['type'] = $mimetype;
|
'tmp_name' => $fullfile,
|
||||||
$_FILES["userfile"]['name'] = isset($names[0]) ? $names[0] : $uuid;
|
'type' => $mimetype,
|
||||||
$_FILES["userfile"]['size'] = filesize($fullfile);
|
'name' => isset($names[0]) ? $names[0] : $uuid,
|
||||||
$_FILES["userfile"]['error'] = 0;
|
'size' => filesize($fullfile),
|
||||||
|
'error' => 0,
|
||||||
|
'source' => 'upload',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_FILES['userfile']) && $_FILES['userfile']['error'] == 0) {
|
if($controller->hasHook('getDocument')) {
|
||||||
// if(!is_uploaded_file($_FILES["userfile"]["tmp_name"]))
|
$file_ary = array_merge($file_ary, $controller->callHook('getDocument', $_POST));
|
||||||
// UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")."lsajdflk");
|
}
|
||||||
|
|
||||||
if($_FILES["userfile"]["size"] == 0)
|
if(!$file_ary) {
|
||||||
|
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("uploading_failed"));
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = $file_ary[0];
|
||||||
|
if ($file['error'] == 0) {
|
||||||
|
if ($file["size"]==0) {
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_zerosize"));
|
||||||
|
}
|
||||||
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
$maxuploadsize = SeedDMS_Core_File::parse_filesize($settings->_maxUploadSize);
|
||||||
if ($maxuploadsize && $_FILES["userfile"]["size"] > $maxuploadsize) {
|
if ($maxuploadsize && $file["size"] > $maxuploadsize) {
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_maxsize"));
|
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_maxsize"));
|
||||||
}
|
}
|
||||||
|
|
||||||
$userfiletmp = $_FILES["userfile"]["tmp_name"];
|
$userfiletmp = $file["tmp_name"];
|
||||||
$userfiletype = $_FILES["userfile"]["type"];
|
$userfiletype = $file["type"];
|
||||||
$userfilename = $_FILES["userfile"]["name"];
|
$userfilename = $file["name"];
|
||||||
|
|
||||||
if($settings->_overrideMimeType) {
|
if($settings->_overrideMimeType) {
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
|
@ -106,23 +147,6 @@ if (isset($_FILES['userfile']) && $_FILES['userfile']['error'] == 0) {
|
||||||
if($tmpfiletype != 'application/octet-stream')
|
if($tmpfiletype != 'application/octet-stream')
|
||||||
$userfiletype = $tmpfiletype;
|
$userfiletype = $tmpfiletype;
|
||||||
}
|
}
|
||||||
} elseif($settings->_dropFolderDir) {
|
|
||||||
if($_POST['dropfolderfileform1']) {
|
|
||||||
$fullfile = $settings->_dropFolderDir.'/'.$user->getLogin().'/'.$_POST["dropfolderfileform1"];
|
|
||||||
if(file_exists($fullfile)) {
|
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
|
||||||
$mimetype = finfo_file($finfo, $fullfile);
|
|
||||||
$userfiletmp = $fullfile;
|
|
||||||
$userfiletype = $mimetype;
|
|
||||||
$userfilename= $_POST["dropfolderfileform1"];
|
|
||||||
} else {
|
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("uploading_failed"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if the uploaded file is identical to last version */
|
/* Check if the uploaded file is identical to last version */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user