Fichiers joints - Augmentation du nombre

Forum Général sur les questions que vous vous posez sur le logiciel.
Répondre
imohsen
Gsup LEVEL 2
Messages : 41
Enregistré le : jeu. 28 déc. 2017 14:26

Bonjour Flox,

Il y a une raison particulière pour que les fichiers joints soient limités au nombre de 5 ?

Je viens de modifier la limite en éditant les fichiers "/attachement.php" et "/core/upload.php" et en modifiant la structure de la table "tincidents".
Cela fonctionne parfaitement, mais en cas de MAJ du produit je devrais tout refaire

Serait-il possible d'augmenter ce nombre ? Et plus particulièrement mettre un input dans le BO pour permettre une configuration personnalisée ?

D'avance merci pour votre retour.

Cordialement

GestSup: 3.2.4 | OS: W2K2019 | Web: IIS 8. PHP: 7.3.25
------------------| OS: Debian10 | SQL : MySQL 8.0.2
Avatar du membre
bbc94
Gsup LEVEL 5
Messages : 183
Enregistré le : ven. 6 juil. 2018 12:47

Je suis aussi très embêté par cela, serait-il possible de partager le code que tu as modifié afin que je puisse le faire aussi ?
=> je perd beaucoup de temps a mettre dans un fichier archive les pj ...
Merci d'avance !
- GestSup 3.2.40 - OS: Windows 2016 64bits - Apache: 2.4.52 - PHP: 8.1.3 - MariaDB - 10.2.8
imohsen
Gsup LEVEL 2
Messages : 41
Enregistré le : jeu. 28 déc. 2017 14:26

Bonjour,

Concernant les modifications, il y en a plusieurs et pour chaque fichier joint supplémentaire désiré l'action est à répéter...
Attention, les numéros de lignes ne vont pas tous correspondre à votre fichier, le miens étant déjà modifié ...
Egalement, lors du mise à jour de Gestsup, ces modifications vont être supprimées.


Fichiers /attachement.php

Ligne 21
Ajouter

Code : Tout sélectionner

 || $_GET['delimg']=='img6'
après

Code : Tout sélectionner

 || $_GET['delimg']=='img5'
Ligne 43
ajouter

Code : Tout sélectionner

,img6
après

Code : Tout sélectionner

,img5
Ligne 52
Ajouter

Code : Tout sélectionner

else if ($row['img6']=="") {$freeslot="6";}
après

Code : Tout sélectionner

else if ($row['img5']=="") {$freeslot="5";}
Ligner 143
Ajouter

Code : Tout sélectionner

if ($row['img6']!='')
{
	echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a target=\"_blank\" href=\"./upload/$_GET[id]/$row[img6]\" title=\"$row[img6]\" style=\"text-decoration:none\"><i style=\"vertical-align: middle;\" class=\"icon-file blue bigger-200\" ></i>&nbsp;</a>&nbsp;<a target=\"_blank\" href=\"./upload/$_GET[id]/$row[img6]\" title=\"$row[img5]\" >$row[img6]</a>";
	if ($_GET['page']!="ticket_u" && ($globalrow['state']!=3 || ($_SESSION['profile_id']==0 || $_SESSION['profile_id']==4))) echo '<a title="'.T_('Supprimer').'" href="./index.php?page=ticket&amp;&userid='.$_GET['userid'].'&amp;&technician='.$_GET['technician'].'&amp;id='.$globalrow['id'].'&amp;delimg=img6"> <i class="icon-trash red bigger-140"></i></a>';
	if (is_dir("./upload/$_GET[id]/")) {
		if(file_exists("./upload/$_GET[id]/$row[img6]"))
		{
			$file_size = filesize("./upload/$_GET[id]/$row[img6]");
			$file_size=round($file_size/1024,0);
			echo " ($file_size Ko)<br />";
		} else {
			echo ' ('.T_('Le fichier à été supprimé du serveur').')<br />';
		}
	} else {echo ' ('.T_('Le repertoire de ce ticket à été supprimé du serveur').')<br />';}
}

Fichiers /core/upload.php

Ligne 18
Ajouter

Code : Tout sélectionner

if(!isset($_FILES['file6']['name'])) $_FILES['file6']['name'] = '';
En dessous de

Code : Tout sélectionner

if(!isset($_FILES['file5']['name'])) $_FILES['file5']['name'] = '';
Ligne 21
Ajouter

Code : Tout sélectionner

if(!isset($_FILES['file6']['name'])) $_FILES['file6']['name'] = '';
en dessous de

Code : Tout sélectionner

if(!isset($_FILES['file5']['name'])) $_FILES['file5']['name'] = '';
Ligne 38
Ajouter

Code : Tout sélectionner

$file6_rename =  preg_replace("/[^A-Za-z0-9\_\-\.]/", '', $_FILES['file6']['name']);
En dessous de

Code : Tout sélectionner

$file5_rename =  preg_replace("/[^A-Za-z0-9\_\-\.]/", '', $_FILES['file5']['name']);
A la fin du fichier
Ajouter avant ?>

Code : Tout sélectionner

elseif($_FILES['file6']['name']) { 
	//if id directory not exist, create it
	if (is_dir("./upload/$_GET[id]")) echo ""; else mkdir ("./upload/$_GET[id]/", 0777);
	$filename=$_FILES['file6']['name'];
	//secure check for extension
    $ext=explode('.',$filename);
	foreach ($ext as &$value) {
		$value=strtolower($value);
		if(in_array($value,$blacklist)) {$blacklistedfile=1;} 
	}
    if($blacklistedfile==0) {
      	$destination_folder= dirname(__FILE__)."../../upload/$_GET[id]/";
    	if (move_uploaded_file($_FILES['file6']['tmp_name'], $destination_folder.$file6_rename)) 
    	{
			$qry=$db->prepare("UPDATE `tincidents` SET `img6`=:img6 WHERE `id`=:id");
			$qry->execute(array('img6' => $file6_rename,'id' => $_GET['id']));
    	} else {
			echo T_('Erreur de transfert vérifier le chemin ').$destination_folder;
    	}
	} else {echo '<div class="alert alert-danger"><strong><i class="icon-remove"></i>'.T_('Blocage de sécurité').':</strong> '.T_('Fichier interdit').'.<br></div>';}
}

Base de données
Créer la colonne "img6" dans la table "tincidents" avec les mêmes spécificités que la colonne "img5"

Cordialement

GestSup: 3.2.4 | OS: W2K2019 | Web: IIS 8. PHP: 7.3.25
------------------| OS: Debian10 | SQL : MySQL 8.0.2
imohsen
Gsup LEVEL 2
Messages : 41
Enregistré le : jeu. 28 déc. 2017 14:26

Bonsoir Flox,

Pourrais-je avoir une réponse à mes questions initiales SVP ?
imohsen a écrit : mar. 16 oct. 2018 18:00
  • Il y a une raison particulière pour que les fichiers joints soient limités au nombre de 5 ?
  • Serait-il possible d'augmenter ce nombre ? Et plus particulièrement mettre un input dans le BO pour permettre une configuration personnalisée ?

J'ajoute également une autre question :
Si je revois ce module d'upload et le confectionne différemment (plus d'utilisation de la BDD - Gestion directe depuis le système de fichier), donner la possibilité de personnaliser le nombre de fichier joint maximum dans le BO, l'intégreriez vous dans votre solution ?

D'avance merci.

Cordialement

GestSup: 3.2.4 | OS: W2K2019 | Web: IIS 8. PHP: 7.3.25
------------------| OS: Debian10 | SQL : MySQL 8.0.2
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez vous définir BO ?

Pour l'augmentation du nombre de fichier il faudrai basculer sur un fonctionnement identique à la fonction procédures, des modifications seraient a prévoir sur: le ticket, connecteur SMTP / IMAP, liste des tickets soit 7 fichiers a modifier.
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
imohsen
Gsup LEVEL 2
Messages : 41
Enregistré le : jeu. 28 déc. 2017 14:26

Bonjour Flox,

BO pour BackOffice en l’occurrence la page d'administration pour Gestsup.

OK merci pour l'information, si vous pouviez me communiquer le nom des 7 fichiers ce serait super !

Cordialement

GestSup: 3.2.4 | OS: W2K2019 | Web: IIS 8. PHP: 7.3.25
------------------| OS: Debian10 | SQL : MySQL 8.0.2
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

fichiers à modifiés
Fichiers joints
2018-10-25 16_49_25-screenshot-zensoft.png
2018-10-25 16_49_25-screenshot-zensoft.png (4.74 Kio) Vu 8109 fois
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
imohsen
Gsup LEVEL 2
Messages : 41
Enregistré le : jeu. 28 déc. 2017 14:26

Bonjour Flox,

Merci.
Je verrais ce que je peux y faire.

Cordialement

GestSup: 3.2.4 | OS: W2K2019 | Web: IIS 8. PHP: 7.3.25
------------------| OS: Debian10 | SQL : MySQL 8.0.2
Avatar du membre
bbc94
Gsup LEVEL 5
Messages : 183
Enregistré le : ven. 6 juil. 2018 12:47

Super, pour éviter de perdre le code modifié, serait-il possible Flox d'au moins conserver le système actuel mais passer le nombre de fichiers de 5 => 10 ? en reprenant le code fournis au dessus ?
- GestSup 3.2.40 - OS: Windows 2016 64bits - Apache: 2.4.52 - PHP: 8.1.3 - MariaDB - 10.2.8
Répondre