function afficher_form_fichier($erreurs, $fichiers, $what) { // ajout d’un fichier $max_file_size = taille_formate(min(return_bytes(ini_get('upload_max_filesize')), return_bytes(ini_get('post_max_size')))); $max_file_nb = ini_get('max_file_uploads'); if ($erreurs) { echo erreurs($erreurs); } $form = '<form id="form-image" class="bordered-formbloc" enctype="multipart/form-data" method="post" action="' . basename($_SERVER['PHP_SELF']) . '" onsubmit="submitdnd(event);">' . "\n"; if (empty($fichiers)) { // si PAS fichier donnée : formulaire nouvel envoi. $form .= '<fieldset class="pref" >' . "\n"; $form .= '<div id="form-dragndrop">' . "\n"; $form .= '<div id="dragndrop-area" ondragover="event.preventDefault();" ondrop="handleDrop(event);" >' . "\n"; $form .= "\t" . '<div id="dragndrop-title">' . "\n"; $form .= "\t\t" . $GLOBALS['lang']['img_drop_files_here'] . "\n"; $form .= "\t\t" . '<div class="upload-info">(' . $GLOBALS['lang']['label_jusqua'] . $max_file_size . $GLOBALS['lang']['label_parfichier'] . ')</div>' . "\n"; $form .= "\t" . '</div>' . "\n"; $form .= "\t" . '<div id="file-input-wrapper"><input name="fichier" id="fichier" type="file" required="" /></div>' . "\n"; $form .= "\t" . '<button type="button" class="specify-link white-square" id="click-change-form" onclick="return switchUploadForm();" data-lang-url="' . $GLOBALS['lang']['img_specifier_url'] . '" data-lang-file="' . $GLOBALS['lang']['img_upload_un_fichier'] . '">' . $GLOBALS['lang']['img_specifier_url'] . '</button>' . "\n"; $form .= '</div>' . "\n"; $form .= '<div id="count"></div>' . "\n"; $form .= '<div id="result"></div>' . "\n"; $form .= '</div>' . "\n"; $form .= '<div id="img-others-infos">' . "\n"; $form .= "\t" . '<p><label for="nom_entree">' . $GLOBALS['lang']['label_dp_nom'] . '</label><input type="text" id="nom_entree" name="nom_entree" placeholder="' . $GLOBALS['lang']['placeholder_nom_fichier'] . '" value="" size="60" class="text" /></p>' . "\n"; $form .= "\t" . '<p><label for="description">' . $GLOBALS['lang']['label_dp_description'] . '</label><textarea class="text" id="description" name="description" cols="60" rows="5" placeholder="' . $GLOBALS['lang']['placeholder_description'] . '" ></textarea></p>' . "\n"; $form .= "\t" . '<p><label for="dossier">' . $GLOBALS['lang']['label_dp_dossier'] . '</label><input type="text" id="dossier" name="dossier" placeholder="' . $GLOBALS['lang']['placeholder_folder'] . '" value="" size="60" class="text" /></p>' . "\n"; $form .= "\t" . '<p><label for="statut">' . $GLOBALS['lang']['label_file_priv'] . '<input type="checkbox" id="statut" name="statut"/></label></p>'; $form .= hidden_input('token', new_token(), 'id'); $form .= hidden_input('_verif_envoi', '1'); $form .= "\t" . '<p class="submit-bttns"><input class="submit blue-square" type="submit" name="upload" value="' . $GLOBALS['lang']['img_upload'] . '" /></p>' . "\n"; $form .= '</div>' . "\n"; $form .= '</fieldset>' . "\n"; } elseif (!empty($fichiers) and isset($_GET['file_id']) and preg_match('/\\d{14}/', $_GET['file_id'])) { $myfile = $fichiers[0]; if ($myfile['bt_type'] == 'image') { $dossier = $GLOBALS['racine'] . $GLOBALS['dossier_images'] . $myfile['bt_path']; } else { $dossier = $GLOBALS['racine'] . $GLOBALS['dossier_fichiers']; } $form .= '<div class="edit-fichier">' . "\n"; // codes d’intégrations pour les médias // Video if ($myfile['bt_type'] == 'video') { $form .= '<div class="display-media"><video class="media" src="' . $dossier . '/' . $myfile['bt_filename'] . '" type="video/' . $myfile['bt_fileext'] . '" load controls="controls"></video></div>' . "\n"; } // image if ($myfile['bt_type'] == 'image') { $form .= '<div class="display-media"><a href="' . $dossier . '/' . $myfile['bt_filename'] . '"><img class="media" src="' . $dossier . '/' . $myfile['bt_filename'] . '" alt="' . $myfile['bt_filename'] . '" width="' . $myfile['bt_dim_w'] . '" height="' . $myfile['bt_dim_h'] . '" /></a></div>' . "\n"; } // audio if ($myfile['bt_type'] == 'music') { $form .= '<div class="display-media"><audio class="media" src="' . $dossier . '/' . $myfile['bt_filename'] . '" type="audio/' . $myfile['bt_fileext'] . '" load controls="controls"></audio></div>' . "\n"; } // la partie listant les infos du fichier. $form .= '<ul id="fichier-meta-info">' . "\n"; $form .= "\t" . '<li><b>' . $GLOBALS['lang']['label_dp_nom'] . '</b> ' . $myfile['bt_filename'] . '</li>' . "\n"; $form .= "\t" . '<li><b>' . $GLOBALS['lang']['label_dp_type'] . '</b> ' . $myfile['bt_type'] . ' (.' . $myfile['bt_fileext'] . ')</li>' . "\n"; if ($myfile['bt_type'] == 'image') { // si le fichier est une image, on ajout ses dimensions en pixels $form .= "\t" . '<li><b>' . $GLOBALS['lang']['label_dp_dimensions'] . '</b> ' . $myfile['bt_dim_w'] . 'px × ' . $myfile['bt_dim_h'] . 'px' . '</li>' . "\n"; } $form .= "\t" . '<li><b>' . $GLOBALS['lang']['label_dp_date'] . '</b>' . date_formate($myfile['bt_id']) . ', ' . heure_formate($myfile['bt_id']) . '</li>' . "\n"; $form .= "\t" . '<li><b>' . $GLOBALS['lang']['label_dp_poids'] . '</b>' . taille_formate($myfile['bt_filesize']) . '</li>' . "\n"; $form .= "\t" . '<li><b>' . $GLOBALS['lang']['label_dp_checksum'] . '</b>' . $myfile['bt_checksum'] . '</li>' . "\n"; $form .= "\t" . '<li><b>' . $GLOBALS['lang']['label_dp_visibilite'] . '</b>' . ($myfile['bt_statut'] == 1 ? 'Publique' : 'Privée') . '</li>' . "\n"; $form .= '</ul>' . "\n"; // la partie des codes d’intégration (bbcode, etc.) $form .= '<div id="interg-codes">' . "\n"; $form .= '<p><strong>' . ucfirst('codes d’intégration :') . '</strong></p>' . "\n"; $form .= '<input onfocus="this.select()" class="text" type="text" value=\'' . $dossier . '/' . $myfile['bt_filename'] . '\' />' . "\n"; if ($myfile['bt_type'] == 'image') { // si le fichier est une image, on ajout BBCode pour [IMG] et le code en <img/> $form .= '<input onfocus="this.select()" class="text" type="text" value=\'<img src="' . $dossier . '/' . $myfile['bt_filename'] . '" alt="i" width="' . $myfile['bt_dim_w'] . '" height="' . $myfile['bt_dim_h'] . '" style="max-width: 100%; height: auto;" />\' />' . "\n"; $form .= '<input onfocus="this.select()" class="text" type="text" value=\'<img src="/' . $GLOBALS['dossier_images'] . $myfile['bt_path'] . '/' . $myfile['bt_filename'] . '" alt="i" width="' . $myfile['bt_dim_w'] . '" height="' . $myfile['bt_dim_h'] . '" style="max-width: 100%; height: auto;" />\' />' . "\n"; $form .= '<input onfocus="this.select()" class="text" type="text" value=\'<img src="' . $GLOBALS['dossier_images'] . $myfile['bt_path'] . '/' . $myfile['bt_filename'] . '" alt="i" width="' . $myfile['bt_dim_w'] . '" height="' . $myfile['bt_dim_h'] . '" style="max-width: 100%; height: auto;" />\' />' . "\n"; $form .= '<input onfocus="this.select()" class="text" type="text" value=\'[img]' . $dossier . '/' . $myfile['bt_filename'] . '[/img]\' />' . "\n"; $form .= '<input onfocus="this.select()" class="text" type="text" value=\'[spoiler][img]' . $dossier . '/' . $myfile['bt_filename'] . '[/img][/spoiler]\' />' . "\n"; } else { $form .= '<input onfocus="this.select()" class="text" type="text" value=\'<a href="' . $dossier . '/' . $myfile['bt_filename'] . '" />' . $myfile['bt_filename'] . '</a>\' />' . "\n"; $form .= '<input onfocus="this.select()" class="text" type="text" value=\'[url]' . $dossier . '/' . $myfile['bt_filename'] . '[/url]\' />' . "\n"; } $form .= '</div>' . "\n"; // la partie avec l’édition du contenu. $form .= '<div id="img-others-infos">' . "\n"; $form .= "\t" . '<p><label for="nom_entree">' . ucfirst($GLOBALS['lang']['label_dp_nom']) . '</label><input type="text" id="nom_entree" name="nom_entree" placeholder="" value="' . pathinfo($myfile['bt_filename'], PATHINFO_FILENAME) . '" size="60" class="text" /></p>' . "\n"; $form .= "\t" . '<p><label for="description">' . $GLOBALS['lang']['label_dp_description'] . '</label><textarea class="text" name="description" id="description" cols="60" rows="5" placeholder="' . $GLOBALS['lang']['placeholder_description'] . '" >' . $myfile['bt_wiki_content'] . '</textarea></p>' . "\n"; $form .= "\t" . '<p><label for="dossier">' . $GLOBALS['lang']['label_dp_dossier'] . '</label><input type="text" name="dossier" placeholder="' . $GLOBALS['lang']['placeholder_folder'] . '" value="' . (!empty($myfile['bt_dossier']) ? $myfile['bt_dossier'] : '') . '" size="60" class="text" /></p>' . "\n"; $checked = $myfile['bt_statut'] == 0 ? 'checked ' : ''; $form .= "\t" . '<p><label for="statut">' . $GLOBALS['lang']['label_file_priv'] . '<input type="checkbox" id="statut" name="statut" ' . $checked . '/></label></p>'; $form .= "\t" . '<p class="submit-bttns">' . "\n"; $form .= "\t\t" . '<input class="submit red-square" type="button" name="supprimer" value="' . $GLOBALS['lang']['supprimer'] . '" onclick="rmFichier(this)" />' . "\n"; $form .= "\t\t" . '<button class="submit white-square" type="button" onclick="annuler(\'fichiers.php\');">' . $GLOBALS['lang']['annuler'] . '</button>' . "\n"; $form .= "\t\t" . '<input class="submit blue-square" type="submit" name="editer" value="' . $GLOBALS['lang']['envoyer'] . '" />' . "\n"; $form .= "\t" . '</p>' . "\n"; $form .= '</div>' . "\n"; $form .= hidden_input('_verif_envoi', '1'); $form .= hidden_input('is_it_edit', 'yes'); $form .= hidden_input('file_id', $myfile['bt_id']); $form .= hidden_input('filename', $myfile['bt_filename']); $form .= hidden_input('sha1_file', $myfile['bt_checksum']); $form .= hidden_input('path', $myfile['bt_path']); $form .= hidden_input('filesize', $myfile['bt_filesize']); $form .= hidden_input('token', new_token()); $form .= '</div>'; } $form .= '</form>' . "\n"; echo $form; }
$liste_fileid = array(); $GLOBALS['liste_fichiers'] = open_serialzd_file($GLOBALS['fichier_liste_fichiers']); foreach ($GLOBALS['liste_fichiers'] as $key => $file) { $liste_fileid[] = $file['bt_id']; } if (isset($_FILES['fichier'])) { $time = time(); $fichier = init_post_fichier(); // avoid ID collisions while (in_array($fichier['bt_id'], $liste_fileid)) { $time--; $fichier['bt_id'] = date('YmdHis', $time); } $erreurs = valider_form_fichier($fichier); if (empty($erreurs)) { $new_fichier = bdd_fichier($fichier, 'ajout-nouveau', 'upload', $_FILES['fichier']); $fichier = is_null($new_fichier) ? $fichier : $new_fichier; echo ' <div class="success"> <p> Your file: <a class="lien lien-edit" href="fichiers.php?file_id=' . $fichier['bt_id'] . '&edit">' . $fichier['bt_filename'] . '</a> (' . $fichier['bt_type'] . ', ' . taille_formate($fichier['bt_filesize']) . ') has been successfully received. <button class="nodisplay" id="token" value="' . new_token() . '"></button> </p> </div>'; } else { echo '<div class="failure">' . erreurs($erreurs) . '</div>' . "\n"; } exit; } else { echo '<div class="failure">No file</div>' . "\n"; }