Skip to content
Extraits de code Groupes Projets
Valider fd472055 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Sortir dans une fonction joindre_trouver_http_post_files() la lecture/remise...

Sortir dans une fonction joindre_trouver_http_post_files() la lecture/remise en forme de $_FILES plutot que chaque plugin la duplique a l'infini
parent f680a850
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -33,44 +33,20 @@ function joindre_trouver_fichier_envoye() { ...@@ -33,44 +33,20 @@ function joindre_trouver_fichier_envoye() {
} }
if (_request('joindre_upload')) { if (_request('joindre_upload')) {
$post = isset($_FILES) ? $_FILES : $GLOBALS['HTTP_POST_FILES']; $files = joindre_trouver_http_post_files();
$files = []; // erreur ?
if (is_array($post)) { if (is_string($files)) {
include_spip('action/ajouter_documents'); return $files;
foreach ($post as $file) { }
if (is_array($file['name'])) { // rien envoye ?
while (count($file['name'])) { if (!count($files)) {
$test = [ return _T('medias:erreur_indiquez_un_fichier');
'error' => array_shift($file['error']), }
'name' => array_shift($file['name']), // verifions les types de fichier envoyes
'tmp_name' => array_shift($file['tmp_name']), include_spip('action/ajouter_documents');
'type' => array_shift($file['type']), foreach ($files as $file) {
]; if (!is_array(verifier_upload_autorise($file['name']))) {
if (!($test['error'] == 4)) { return _T('medias:erreur_upload_type_interdit', ['nom' => $file['name']]);
if (is_string($err = joindre_upload_error($test['error']))) {
return $err;
} // un erreur upload
if (!is_array(verifier_upload_autorise($test['name']))) {
return _T('medias:erreur_upload_type_interdit', ['nom' => $test['name']]);
}
$files[] = $test;
}
}
} else {
//UPLOAD_ERR_NO_FILE
if (!($file['error'] == 4)) {
if (is_string($err = joindre_upload_error($file['error']))) {
return $err;
} // un erreur upload
if (!is_array(verifier_upload_autorise($file['name']))) {
return _T('medias:erreur_upload_type_interdit', ['nom' => $file['name']]);
}
$files[] = $file;
}
}
}
if (!count($files)) {
return _T('medias:erreur_indiquez_un_fichier');
} }
} }
...@@ -167,6 +143,56 @@ function joindre_trouver_fichier_envoye() { ...@@ -167,6 +143,56 @@ function joindre_trouver_fichier_envoye() {
return []; return [];
} }
/**
* Récupérer et mettre en forme la liste des fichiers postes
* que ce soit via plusieurs input file ou via un input file multiple
* @param $name : nom de l'input qu'on veut recuperer si on ne veut pas tous les fichiers
* @return array|string
* string en cas d'erreur
*/
function joindre_trouver_http_post_files($name = null) {
$post = isset($_FILES) ? $_FILES : $GLOBALS['HTTP_POST_FILES'];
$files = [];
if (is_array($post)) {
foreach ($post as $input_name => $file) {
if ($name and $input_name !== $name) {
continue;
}
if (is_array($file['name'])) {
while (count($file['name'])) {
$test = [
'input_name' => $input_name,
'error' => array_shift($file['error']),
'name' => array_shift($file['name']),
'tmp_name' => array_shift($file['tmp_name']),
'type' => array_shift($file['type']),
];
//UPLOAD_ERR_NO_FILE
if (!($test['error'] == 4)) {
// un erreur upload
if (is_string($err = joindre_upload_error($test['error']))) {
return $err;
}
$files[] = $test;
}
}
} else {
//UPLOAD_ERR_NO_FILE
if (!($file['error'] == 4)) {
// un erreur upload
if (is_string($err = joindre_upload_error($file['error']))) {
return $err;
}
$file['input_name'] = $input_name;
$files[] = $file;
}
}
}
}
return $files;
}
// Erreurs d'upload // Erreurs d'upload
// renvoie false si pas d'erreur // renvoie false si pas d'erreur
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter