本文整理汇总了PHP中deplacer_fichier_upload函数的典型用法代码示例。如果您正苦于以下问题:PHP deplacer_fichier_upload函数的具体用法?PHP deplacer_fichier_upload怎么用?PHP deplacer_fichier_upload使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了deplacer_fichier_upload函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: admin_repair_plat
function admin_repair_plat(){
spip_log("verification des documents joints");
$out = "";
$repertoire = array();
include_spip('inc/getdocument');
$res = sql_select('*','spip_documents',"fichier REGEXP CONCAT('^',extension,'[^/\]') AND distant='non'");
while ($row=sql_fetch($res)){
$ext = $row['extension'];
if (!$ext) {
spip_log("document sans extension: " . $row['id_document']);
continue;
}
if (!isset($repertoire[$ext])){
if (@file_exists($plat = _DIR_IMG. $ext .".plat"))
spip_unlink($plat);
$repertoire[$ext] = creer_repertoire_documents($ext);
if (preg_match(',_$,',$repertoire[$ext]))
$repertoire[$ext] = false;
}
if ($d=$repertoire[$ext]){
$d = substr($d,strlen(_DIR_IMG));
$src = $row['fichier'];
$dest = $d . substr($src,strlen($d));
if (deplacer_fichier_upload(_DIR_IMG . $src, _DIR_IMG . $dest)) {
sql_updateq('spip_documents',array('fichier'=>$dest),'id_document='.intval($row['id_document']));
spip_unlink(_DIR_IMG . $src);
$out .= "$src => $dest<br />";
}
}
}
return $out;
}
示例2: action_spip_image_ajouter_dist
function action_spip_image_ajouter_dist($arg, $sousaction2, $source, $return = false)
{
global $formats_logos;
include_spip('inc/documents');
if (!$sousaction2) {
if (!$_FILES) {
$_FILES = $GLOBALS['HTTP_POST_FILES'];
}
$source = is_array($_FILES) ? array_pop($_FILES) : "";
}
$erreur = "";
if (!$source) {
spip_log("spip_image_ajouter : source inconnue");
} else {
$f = _DIR_LOGOS . $arg . '.tmp';
if (!is_array($source)) {
// fichier dans upload/
$source = @copy(determine_upload() . $source, $f);
} else {
// Intercepter une erreur a l'envoi
if ($erreur = check_upload_error($source['error'], "", $return)) {
$source = "";
} else {
// analyse le type de l'image (on ne fait pas confiance au nom de
// fichier envoye par le browser : pour les Macs c'est plus sur)
$source = deplacer_fichier_upload($source['tmp_name'], $f);
}
}
if (!$source) {
spip_log("pb de copie pour {$f}");
}
}
if ($source and $f) {
$size = @getimagesize($f);
$type = !$size ? '' : ($size[2] > 3 ? '' : $formats_logos[$size[2] - 1]);
if ($type) {
$poids = filesize($f);
if (_LOGO_MAX_SIZE > 0 and $poids > _LOGO_MAX_SIZE * 1024) {
spip_unlink($f);
$erreur = _T('info_logo_max_poids', array('maxi' => taille_en_octets(_LOGO_MAX_SIZE * 1024), 'actuel' => taille_en_octets($poids)));
} elseif (_LOGO_MAX_WIDTH * _LOGO_MAX_HEIGHT and ($size[0] > _LOGO_MAX_WIDTH or $size[1] > _LOGO_MAX_HEIGHT)) {
spip_unlink($f);
$erreur = _T('info_logo_max_poids', array('maxi' => _T('info_largeur_vignette', array('largeur_vignette' => _LOGO_MAX_WIDTH, 'hauteur_vignette' => _LOGO_MAX_HEIGHT)), 'actuel' => _T('info_largeur_vignette', array('largeur_vignette' => $size[0], 'hauteur_vignette' => $size[1]))));
} else {
@rename($f, _DIR_LOGOS . $arg . ".{$type}");
}
} else {
spip_unlink($f);
$erreur = _T('info_logo_format_interdit', array('formats' => join(', ', $formats_logos)));
}
}
if ($erreur) {
if ($return) {
return $erreur;
} else {
check_upload_error(6, $erreur);
}
}
}
示例3: action_tourner_post
/**
* Tourner un document
*
* http://doc.spip.org/@action_tourner_post
*
* @param int $id_document
* @param int $angle
* angle de rotation en degre>0
* @return
*/
function action_tourner_post($id_document, $angle)
{
$row = sql_fetsel("fichier,extension", "spip_documents", "id_document=" . intval($id_document));
if (!$row) {
return;
}
include_spip('inc/charsets');
# pour le nom de fichier
include_spip('inc/documents');
// Fichier destination : on essaie toujours de repartir de l'original
$var_rot = $angle;
include_spip('inc/distant');
# pour copie_locale
$src = _DIR_RACINE . copie_locale(get_spip_doc($row['fichier']));
if (preg_match(',^(.*)-r(90|180|270)\\.([^.]+)$,', $src, $match)) {
$effacer = $src;
$src = $match[1] . '.' . $match[3];
$var_rot += intval($match[2]);
}
$var_rot = (360 + $var_rot) % 360;
// 0, 90, 180 ou 270
if ($var_rot > 0) {
$dest = preg_replace(',\\.[^.]+$,', '-r' . $var_rot . '$0', $src);
spip_log("rotation {$var_rot} {$src} : {$dest}");
include_spip('inc/filtres');
include_spip('public/parametrer');
// charger les fichiers fonctions #bugfix spip 2.1.0
$res = filtrer('image_rotation', $src, $var_rot);
$res = filtrer('image_format', $res, $row['extension']);
list($hauteur, $largeur) = taille_image($res);
$res = extraire_attribut($res, 'src');
include_spip('inc/getdocument');
deplacer_fichier_upload($res, $dest);
} else {
$dest = $src;
$size_image = @getimagesize($dest);
$largeur = $size_image[0];
$hauteur = $size_image[1];
}
// succes !
if ($largeur > 0 and $hauteur > 0) {
$set = array('fichier' => set_spip_doc($dest), 'largeur' => $largeur, 'hauteur' => $hauteur, 'distant' => 'non');
if ($taille = @filesize($dest)) {
$set['taille'] = $taille;
}
sql_updateq('spip_documents', $set, "id_document=" . intval($id_document));
if ($effacer) {
spip_log("rotation : j'efface {$effacer}");
spip_unlink($effacer);
}
// pipeline pour les plugins
pipeline('post_edition', array('args' => array('table' => 'spip_documents', 'table_objet' => 'documents', 'spip_table_objet' => 'spip_documents', 'type' => 'document', 'id_objet' => $id_document, 'champs' => array('rotation' => $angle, 'orientation' => $var_rot, 'fichier' => $row['fichier']), 'serveur' => $serveur, 'action' => 'tourner'), 'data' => $set));
}
}
示例4: copier_document
function copier_document($ext, $orig, $source) {
$orig = preg_replace(',\.\.+,', '.', $orig); // pas de .. dans le nom du doc
$dir = creer_repertoire_documents($ext);
$dest = preg_replace("/[^.=\w-]+/", "_",
translitteration(preg_replace("/\.([^.]+)$/", "",
preg_replace("/<[^>]*>/", '', basename($orig)))));
// ne pas accepter de noms de la forme -r90.jpg qui sont reserves
// pour les images transformees par rotation (action/documenter)
$dest = preg_replace(',-r(90|180|270)$,', '', $dest);
// Si le document "source" est deja au bon endroit, ne rien faire
if ($source == ($dir . $dest . '.' . $ext))
return $source;
// sinon tourner jusqu'a trouver un numero correct
$n = 0;
while (@file_exists($newFile = $dir . $dest .($n++ ? ('-'.$n) : '').'.'.$ext));
return deplacer_fichier_upload($source, $newFile);
}
示例5: mysqli_real_escape_string
$msg .= "Erreur de téléchargement niveau 2.<br />";
} else {
if (my_strtolower($sav_photo['type']) != "image/jpeg") {
$msg .= "Erreur : seuls les fichiers ayant l'extension .jpg sont autorisés (<i>" . $sav_photo['name'] . " : " . $sav_photo['type'] . "</i>)<br />";
} else {
if (!(preg_match('/jpg$/i', $sav_photo['name']) || preg_match('/jpeg$/i', $sav_photo['name']))) {
$msg .= "Erreur : seuls les fichiers ayant l'extension .jpg ou .jpeg sont autorisés (<i>" . $sav_photo['name'] . "</i>)<br />";
} else {
$dest = $rep_photos;
$sql = "SELECT elenoet FROM eleves WHERE login='" . mysqli_real_escape_string($GLOBALS["mysqli"], $_POST['login_photo']) . "';";
$res_elenoet = mysqli_query($GLOBALS["mysqli"], $sql);
if (mysqli_num_rows($res_elenoet) == 0) {
$msg .= "Aucun elenoet n'a été trouvé pour renommer la photo de cet élève.<br />\n";
} else {
$quiestce = encode_nom_photo(old_mysql_result($res_elenoet, 0, 'elenoet'));
if (!deplacer_fichier_upload($sav_photo['tmp_name'], $rep_photos . $quiestce . ".jpg")) {
$msg .= "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire photos/eleves/<br />";
} else {
//$msg = "Téléchargement réussi.";
if (getSettingValue("active_module_trombinoscopes_rd") == 'y') {
// si le redimensionnement des photos est activé on redimenssionne
$source = imagecreatefromjpeg($rep_photos . $quiestce . ".jpg");
// La photo est la source
if (getSettingValue("active_module_trombinoscopes_rt") == '') {
$destination = imagecreatetruecolor(getSettingValue("l_resize_trombinoscopes"), getSettingValue("h_resize_trombinoscopes"));
}
// On crée la miniature vide
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
示例6: formulaires_forum_verifier_dist
/**
* Verifier la saisie de #FORMULAIRE_FORUM
* @param string $objet
* @param int $id_objet
* @param int $id_forum
* @param int|array $ajouter_mot
* mots ajout�s coch�s par defaut
* @param $ajouter_groupe
* groupes ajoutables
* @param $afficher_previsu
* previsu oui ou non
* @param $retour
* url de retour
* @return array|bool
*/
function formulaires_forum_verifier_dist($objet, $id_objet, $id_forum, $ajouter_mot, $ajouter_groupe, $afficher_previsu, $retour)
{
include_spip('inc/acces');
include_spip('inc/texte');
include_spip('inc/session');
include_spip('base/abstract_sql');
$erreurs = array();
$doc = array();
// desactiver id_rubrique si un id_article ou autre existe dans le contexte
// if ($id_article OR $id_breve OR $id_forum OR $id_syndic)
// $id_rubrique = 0;
// stocker un eventuel document dans un espace temporaire
// portant la cle du formulaire ; et ses metadonnees avec
if (isset($_FILES['ajouter_document']) and $_FILES['ajouter_document']['tmp_name']) {
$acceptes = forum_documents_acceptes();
if (!count($acceptes) or _request('cle_ajouter_document') != calculer_cle_action($a = "ajouter-document-{$objet}-{$id_objet}")) {
$erreurs['document_forum'] = _T('forum:documents_interdits_forum');
unset($_FILES['ajouter_document']);
} else {
if (!isset($GLOBALS['visiteur_session']['tmp_forum_document'])) {
session_set('tmp_forum_document', sous_repertoire(_DIR_TMP, 'documents_forum') . md5(uniqid(rand())));
}
$tmp = $GLOBALS['visiteur_session']['tmp_forum_document'];
$doc =& $_FILES['ajouter_document'];
include_spip('inc/joindre_document');
include_spip('action/ajouter_documents');
list($extension, $doc['name']) = fixer_extension_document($doc);
if (!in_array($extension, $acceptes)) {
$erreurs['document_forum'] = _T('public:formats_acceptes', array('formats' => join(', ', $acceptes)));
} else {
include_spip('inc/getdocument');
if (!deplacer_fichier_upload($doc['tmp_name'], $tmp . '.bin')) {
$erreurs['document_forum'] = _T('copie_document_impossible');
}
# else if (...)
# verifier le type_document autorise
# retailler eventuellement les photos
}
// si ok on stocke les meta donnees, sinon on efface
if (isset($erreurs['document_forum'])) {
spip_unlink($tmp . '.bin');
unset($_FILES['ajouter_document']);
} else {
$doc['tmp_name'] = $tmp . '.bin';
ecrire_fichier($tmp . '.txt', serialize($doc));
}
}
} elseif (isset($GLOBALS['visiteur_session']['tmp_forum_document']) and $tmp = $GLOBALS['visiteur_session']['tmp_forum_document'] and file_exists($tmp . '.bin')) {
if (_request('supprimer_document_ajoute')) {
spip_unlink($tmp . '.bin');
spip_unlink($tmp . '.txt');
} elseif (lire_fichier($tmp . '.txt', $meta)) {
$doc =& $_FILES['ajouter_document'];
$doc = @unserialize($meta);
}
}
$min_length = defined('_FORUM_LONGUEUR_MINI') ? _FORUM_LONGUEUR_MINI : 10;
if (strlen($texte = _request('texte')) < $min_length and !$ajouter_mot and $GLOBALS['meta']['forums_texte'] == 'oui') {
$erreurs['texte'] = _T($min_length == 10 ? 'forum:forum_attention_dix_caracteres' : 'forum:forum_attention_nb_caracteres_mini', array('min' => $min_length));
} elseif (defined('_FORUM_LONGUEUR_MAXI') and _FORUM_LONGUEUR_MAXI > 0 and strlen($texte) > _FORUM_LONGUEUR_MAXI) {
$erreurs['texte'] = _T('forum:forum_attention_trop_caracteres', array('compte' => strlen($texte), 'max' => _FORUM_LONGUEUR_MAXI));
}
if (array_reduce($_POST, 'reduce_strlen', 20 * 1024) < 0) {
$erreurs['erreur_message'] = _T('forum:forum_message_trop_long');
} else {
// Ne pas autoriser d'envoi hacke si forum sur abonnement
if (controler_forum($objet, $id_objet) == 'abo' and !test_espace_prive()) {
if (!isset($GLOBALS['visiteur_session']) or !isset($GLOBALS['visiteur_session']['statut'])) {
$erreurs['erreur_message'] = _T('forum_non_inscrit');
} elseif ($GLOBALS['visiteur_session']['statut'] == '5poubelle') {
$erreurs['erreur_message'] = _T('forum:forum_acces_refuse');
}
}
}
if (strlen($titre = _request('titre')) < 3 and $GLOBALS['meta']['forums_titre'] == 'oui') {
$erreurs['titre'] = _T('forum:forum_attention_trois_caracteres');
}
if (!count($erreurs) and !_request('confirmer_previsu_forum')) {
if ($afficher_previsu != 'non') {
$previsu = inclure_previsu($texte, $titre, _request('url_site'), _request('nom_site'), _request('ajouter_mot'), $doc, $objet, $id_objet, $id_forum);
$erreurs['previsu'] = $previsu;
}
}
// Si forum avec previsu sans bon hash de securite, echec
if (!count($erreurs)) {
//.........这里部分代码省略.........
示例7: cfg_copier_document
/**
* Copier un document
*
* @param string $ext L'extension du fichier
* @param string $dest le nom sous lequel le sauvegarder
* @param string $source le fichier sur le serveur (/var/tmp/xyz34)
* @param string $dans Où le copier
* @return string
*/
function cfg_copier_document($ext, $dest, $source, $dans='_cfg') {
$dest = preg_replace(',\.\.+,', '.', $dest); // pas de .. dans le nom du doc
$dir = cfg_creer_repertoire_cfg($dans);
$dest = preg_replace("/[^._=-\w\d]+/", "_",
translitteration(preg_replace("/\.([^.]+)$/", "",
preg_replace("/<[^>]*>/", '', basename($dest)))));
// ne pas accepter de noms de la forme -r90.jpg qui sont reserves
// pour les images transformees par rotation (action/documenter)
$dest = preg_replace(',-r(90|180|270)$,', '', $dest);
$newFile = $dir . $dest .'.'.$ext;
return _COMPAT_CFG_192 ? cfg_deplacer_fichier_upload($source, $newFile) : deplacer_fichier_upload($source, $newFile);
}
示例8: formulaires_forum_verifier_dist
function formulaires_forum_verifier_dist(
$titre, $table, $type, $script,
$id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic,
$ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
{
include_spip('inc/acces');
include_spip('inc/texte');
include_spip('inc/forum');
include_spip('inc/session');
include_spip('base/abstract_sql');
$erreurs = array();
// desactiver id_rubrique si un id_article ou autre existe dans le contexte
if ($id_article OR $id_breve OR $id_forum OR $id_syndic)
$id_rubrique = 0;
// stocker un eventuel document dans un espace temporaire
// portant la cle du formulaire ; et ses metadonnees avec
if (!isset($GLOBALS['visiteur_session']['tmp_forum_document']))
session_set('tmp_forum_document',
sous_repertoire(_DIR_TMP,'documents_forum').md5(uniqid(rand())));
$tmp = $GLOBALS['visiteur_session']['tmp_forum_document'];
$doc = &$_FILES['ajouter_document'];
if (isset($_FILES['ajouter_document'])
AND $_FILES['ajouter_document']['tmp_name']) {
// securite :
// verifier si on possede la cle (ie on est autorise a poster)
// (sinon tant pis) ; cf. charger.php pour la definition de la cle
if (_request('cle_ajouter_document') != calculer_cle_action($a = "ajouter-document-$id_article-$id_breve-$id_forum-$id_rubrique-$id_syndic")) {
$erreurs['document_forum'] = _T('public:documents_interdits_forum')
. "ajouter-document-$id_article-$id_breve-$id_forum-$id_rubrique-$id_syndic"
.", "
._request('cle_ajouter_document')
;
unset($_FILES['ajouter_document']);
} else {
include_spip('inc/ajouter_documents');
list($extension,$doc['name']) = fixer_extension_document($doc);
$acceptes = forum_documents_acceptes();
if (!in_array($extension, $acceptes)) {
# normalement on n'arrive pas ici : pas d'upload si aucun format
if (!$formats = join(', ',$acceptes))
$formats = '-'; //_L('aucun');
$erreurs['document_forum'] = _T('public:formats_acceptes', array('formats' => $formats));
}
else {
include_spip('inc/getdocument');
if (!deplacer_fichier_upload($doc['tmp_name'], $tmp.'.bin'))
$erreurs['document_forum'] = _T('copie_document_impossible');
# else if (...)
# verifier le type_document autorise
# retailler eventuellement les photos
}
// si ok on stocke les meta donnees, sinon on efface
if (isset($erreurs['document_forum'])) {
spip_unlink($tmp.'.bin');
unset ($_FILES['ajouter_document']);
} else {
$doc['tmp_name'] = $tmp.'.bin';
ecrire_fichier($tmp.'.txt', serialize($doc));
}
}
}
// restaurer le document uploade au tour precedent
else if (file_exists($tmp.'.bin')) {
if (_request('supprimer_document_ajoute')) {
spip_unlink($tmp.'.bin');
spip_unlink($tmp.'.txt');
} else if (lire_fichier($tmp.'.txt', $meta))
$doc = @unserialize($meta);
}
if (strlen($texte = _request('texte')) < 10
AND !$ajouter_mot AND $GLOBALS['meta']['forums_texte'] == 'oui')
$erreurs['texte'] = _T('forum_attention_dix_caracteres');
else if (defined('_FORUM_LONGUEUR_MAXI')
AND _FORUM_LONGUEUR_MAXI > 0
AND strlen($texte) > _FORUM_LONGUEUR_MAXI)
$erreurs['texte'] = _T('forum_attention_trop_caracteres',
array(
'compte' => strlen($texte),
'max' => _FORUM_LONGUEUR_MAXI
));
if (strlen($titre=_request('titre')) < 3
AND $GLOBALS['meta']['forums_titre'] == 'oui')
$erreurs['titre'] = _T('forum_attention_trois_caracteres');
if (!count($erreurs) AND !_request('confirmer_previsu_forum')){
if ($afficher_texte != 'non') {
$previsu = inclure_previsu($texte, $titre, _request('url_site'), _request('nom_site'), _request('ajouter_mot'), $doc,
$id_rubrique, $id_forum, $id_article, $id_breve, $id_syndic);
$erreurs['previsu'] = $previsu;
}
//.........这里部分代码省略.........
示例9: getSettingValue
if (!isset($sav_photo['tmp_name'][$cpt_photo]) or $sav_photo['tmp_name'][$cpt_photo] == '') {
$msg .= "Erreur de téléchargement niveau 1 (<i>photo n°{$cpt_photo}</i>).<br />";
} else {
if (!file_exists($sav_photo['tmp_name'][$cpt_photo])) {
$msg .= "Erreur de téléchargement niveau 2 (<i>photo n°{$cpt_photo}</i>).<br />";
} else {
if (my_strtolower($sav_photo['type'][$cpt_photo]) != "image/jpeg") {
$msg .= "Erreur : seuls les fichiers ayant l'extension .jpg sont autorisés (<i>" . $sav_photo['name'][$cpt_photo] . " : " . $sav_photo['type'][$cpt_photo] . "</i>)<br />";
} else {
if (!(preg_match('/jpg$/i', $sav_photo['name'][$cpt_photo]) || preg_match('/jpeg$/i', $sav_photo['name'][$cpt_photo]))) {
$msg .= "Erreur : seuls les fichiers ayant l'extension .jpg ou .jpeg sont autorisés (<i>" . $sav_photo['name'][$cpt_photo] . "</i>)<br />";
} else {
$dest = $rep_photos;
$n = 0;
//$msg.="\$rep_photos=$rep_photos<br />";
if (!deplacer_fichier_upload($sav_photo['tmp_name'][$cpt_photo], $rep_photos . encode_nom_photo($quiestce[$cpt_photo]) . ".jpg")) {
$msg .= "Problème de transfert : le fichier n°{$cpt_photo} n'a pas pu être transféré sur le répertoire photos/eleves/<br />";
} else {
//$msg = "Téléchargement réussi.";
$cpt_photos_mises_en_place++;
if (getSettingValue("active_module_trombinoscopes_rd") == 'y') {
// si le redimensionnement des photos est activé on redimensionne
if (getSettingValue("active_module_trombinoscopes_rt") != '') {
$redim_OK = redim_photo($rep_photos . encode_nom_photo($quiestce[$cpt_photo]) . ".jpg", getSettingValue("l_resize_trombinoscopes"), getSettingValue("h_resize_trombinoscopes"), getSettingValue("active_module_trombinoscopes_rt"));
} else {
$redim_OK = redim_photo($rep_photos . encode_nom_photo($quiestce[$cpt_photo]) . ".jpg", getSettingValue("l_resize_trombinoscopes"), getSettingValue("h_resize_trombinoscopes"));
}
if (!$redim_OK) {
$msg .= " Echec du redimensionnement de la photo.";
}
}
示例10: ajout_doc
function ajout_doc($doc_file, $id_ct, $doc_name, $cpt_doc)
{
global $max_size, $total_max_size, $edit_devoir, $multisite;
/* Vérification du type de fichier */
//if (my_ereg("\.([^.]+)$", $doc_file['name'][$cpt_doc], $match)) {
if (function_exists("mb_ereg") && mb_ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match) || function_exists("ereg") && ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match)) {
$ext = corriger_caracteres(my_strtolower($match[1]));
$ext = corriger_extension($ext);
} else {
$ext = '';
}
$query = "SELECT id_type FROM ct_types_documents WHERE extension='{$ext}' AND upload='oui'";
$result = sql_query($query);
if ($row = @sql_row($result, 0)) {
$id_type = $row[0];
} else {
return "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.<br />\nSi vous trouvez cela regrettable, contactez l'administrateur.<br />\nIl pourra modifier ce paramétrage dans<br />\n*Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*.";
die;
}
/* Vérification de la taille du fichier */
$sql = "select id_groupe from ct_entry where id_ct='{$id_ct}'";
$id_groupe = sql_query1($sql);
$max_size_ko = $max_size / 1024;
$taille = $doc_file['size'][$cpt_doc];
if ($taille > $max_size) {
return "Téléchargement impossible : taille maximale autorisée : " . $max_size_ko . " Ko";
die;
}
if ($taille == 0) {
return "Le fichier sélectionné semble vide : transfert impossible.";
die;
}
$query = "SELECT DISTINCT sum(taille) somme FROM ct_documents d, ct_entry e WHERE (e.id_groupe='" . $id_groupe . "' and e.id_ct = d.id_ct)";
$total = sql_query1($query);
if ($total + $taille > $total_max_size) {
return "Téléchargement impossible : espace disque disponible (" . ($total_max_size - $total) / 1024 . " Ko) insuffisant.";
die;
}
/* Recopier le fichier */
$dest = '../documents/';
$dossier = '';
$multi = isset($multisite) && $multisite == 'y' ? $_COOKIE['RNE'] . '/' : NULL;
if (isset($multisite) && $multisite == 'y' && is_dir('../documents/' . $multi) === false) {
@mkdir('../documents/' . $multi);
$dest .= $multi;
} elseif (isset($multisite) && $multisite == 'y') {
$dest .= $multi;
}
if (isset($edit_devoir)) {
$dossier = "cl_dev" . $_POST['id_groupe'];
} else {
$dossier = "cl" . $_POST['id_groupe'];
}
if (creer_repertoire($dest, $dossier)) {
$dest .= $dossier . '/';
} else {
return "Problème d'écriture sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
die;
}
$nom_sans_ext = mb_substr(basename($doc_file['name'][$cpt_doc]), 0, mb_strlen(basename($doc_file['name'][$cpt_doc])) - (mb_strlen($ext) + 1));
$nom_sans_ext = my_ereg_replace("[^.a-zA-Z0-9_=-]+", "_", $nom_sans_ext);
if (strstr($nom_sans_ext, "..")) {
return "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
die;
}
$n = 0;
while (file_exists($newFile = $dest . $nom_sans_ext . ($n++ ? '-' . $n : '') . '.' . $ext)) {
}
$dest_path = $newFile;
if (!deplacer_fichier_upload($doc_file['tmp_name'][$cpt_doc], $dest_path)) {
return "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
die;
}
if ($doc_name[$cpt_doc] == '') {
$doc_name[$cpt_doc] = basename($newFile);
}
$nouveau = false;
if (!isset($id_document)) {
if (isset($edit_devoir)) {
$query = "INSERT INTO ct_devoirs_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct_devoir='{$id_ct}', titre='" . corriger_caracteres($doc_name[$cpt_doc]) . "'";
} else {
$query = "INSERT INTO ct_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct='{$id_ct}', titre='" . corriger_caracteres($doc_name[$cpt_doc]) . "'";
}
sql_query($query);
$id_document = is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"])) ? false : $___mysqli_res;
$nouveau = true;
} else {
if (isset($edit_devoir)) {
$query = "UPDATE ct_devoirs_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct_devoir='{$id_ct}', titre='{$titre}' WHERE id_document={$id_document}";
} else {
$query = "UPDATE ct_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct='{$id_ct}', titre='{$titre}' WHERE id_document={$id_document}";
}
sql_query($query);
}
return "Téléchargement réussi !";
}
示例11: fixer_fichier_upload
/**
* Tester le type de document
*
* - le document existe et n'est pas de taille 0 ?
* - interdit a l'upload ?
* - quelle extension dans spip_types_documents ?
* - est-ce "inclus" comme une image ?
*
* Le zipper si necessaire
*
* @param array $file
* Au format $_FILES
* @param string $mode
* Mode d'inclusion du fichier, si connu
* @return array
*/
function fixer_fichier_upload($file, $mode = '')
{
/**
* On vérifie que le fichier existe et qu'il contient quelque chose
*/
if (is_array($row = verifier_upload_autorise($file['name'], $mode))) {
if (!isset($row['autozip'])) {
$row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name']);
/**
* On vérifie que le fichier a une taille
* si non, on le supprime et on affiche une erreur
*/
if ($row['fichier'] && !($taille = @intval(filesize(get_spip_doc($row['fichier']))))) {
spip_log("Echec copie du fichier " . $file['tmp_name'] . " (taille de fichier indéfinie)");
spip_unlink(get_spip_doc($row['fichier']));
return _T('medias:erreur_copie_fichier', array('nom' => $file['tmp_name']));
} else {
return $row;
}
} else {
unset($row['autozip']);
$ext = 'zip';
if (!($tmp_dir = tempnam(_DIR_TMP, 'tmp_upload'))) {
return false;
}
spip_unlink($tmp_dir);
@mkdir($tmp_dir);
include_spip('inc/charsets');
$tmp = $tmp_dir . '/' . translitteration($file['name']);
$file['name'] .= '.' . $ext;
# conserver l'extension dans le nom de fichier, par exemple toto.js => toto.js.zip
// deplacer le fichier tmp_name dans le dossier tmp
deplacer_fichier_upload($file['tmp_name'], $tmp, true);
include_spip('inc/pclzip');
$source = _DIR_TMP . basename($tmp_dir) . '.' . $ext;
$archive = new PclZip($source);
$v_list = $archive->create($tmp, PCLZIP_OPT_REMOVE_PATH, $tmp_dir, PCLZIP_OPT_ADD_PATH, '');
effacer_repertoire_temporaire($tmp_dir);
if (!$v_list) {
spip_log("Echec creation du zip ");
return false;
}
$row['fichier'] = copier_document($row['extension'], $file['name'], $source);
spip_unlink($source);
/**
* On vérifie que le fichier a une taille
* si non, on le supprime et on affiche une erreur
*/
if ($row['fichier'] && !($taille = @intval(filesize(get_spip_doc($row['fichier']))))) {
spip_log("Echec copie du fichier " . $file['tmp_name'] . " (taille de fichier indéfinie)");
spip_unlink(get_spip_doc($row['fichier']));
return _T('medias:erreur_copie_fichier', array('nom' => $file['tmp_name']));
} else {
return $row;
}
}
} else {
return $row;
}
// retourner le message d'erreur
}
示例12: check_token
check_token();
$sav_file = isset($_FILES["sav_file"]) ? $_FILES["sav_file"] : NULL;
//echo "\$sav_file['tmp_name']=".$sav_file['tmp_name']."<br />";
if (!isset($sav_file['tmp_name']) or $sav_file['tmp_name'] == '') {
$msg = "Erreur de téléchargement " . $sav_file['tmp_name'] . ' ' . $dirname;
} else {
if (!file_exists($sav_file['tmp_name'])) {
$msg = "Erreur de téléchargement." . $dirname . ' ' . $sav_file['tmp_name'];
} else {
if (!preg_match('/sql$/', $sav_file['name']) and !preg_match('/gz$/', $sav_file['name'])) {
$msg = "Erreur : seuls les fichiers ayant l'extension .sql ou .gz sont autorisés.";
} else {
$dest = "../backup/" . $dirname . "/";
$n = 0;
$nom_corrige = preg_replace("/[^.a-zA-Z0-9_=-]+/", "_", $sav_file['name']);
if (!deplacer_fichier_upload($sav_file['tmp_name'], "../backup/" . $dirname . "/" . $nom_corrige)) {
$msg = "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire backup";
} else {
$msg = "Téléchargement réussi.";
}
}
}
}
}
// Suppression d'un fichier
if (isset($action) and $action == 'sup') {
check_token();
if (isset($_GET['file']) && $_GET['file'] != '') {
if (isset($_GET['sous_dossier']) && $_GET['sous_dossier'] == 'absences') {
if (@unlink("../backup/" . $dirname . "/absences/" . $_GET['file'])) {
$msg = "Le fichier <b>" . $_GET['file'] . "</b> a été supprimé.<br />\n";
示例13: check_token
// Téléchargement d'un fichier vers backup
if (isset($action) and $action == 'upload') {
check_token();
$sav_file = isset($_FILES["sav_file"]) ? $_FILES["sav_file"] : NULL;
if (!isset($sav_file['tmp_name']) or $sav_file['tmp_name'] == '') {
$msg = "Erreur de téléchargement.";
} else {
if (!file_exists($sav_file['tmp_name'])) {
$msg = "Erreur de téléchargement.";
} else {
if (!preg_match('/sql$/', $sav_file['name']) and !preg_match('/gz$/', $sav_file['name'])) {
$msg = "Erreur : seuls les fichiers ayant l'extension .sql ou .gz sont autorisés.";
} else {
$dest = "../backup/" . $dirname . "/";
$n = 0;
if (!deplacer_fichier_upload($sav_file['tmp_name'], "../backup/" . $dirname . "/data_test.sql")) {
$msg = "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire backup";
} else {
$msg = "Téléchargement réussi.";
}
}
}
}
}
// Protection du répertoire backup
if (isset($action) and $action == 'protect') {
check_token();
include_once "../lib/class.htaccess.php";
// Instance of the htaccess class
//$ht = & new htaccess(TRUE);
$ht = new htaccess(TRUE);
示例14: logo_modifier
/**
* @param string $objet
* @param int $id_objet
* @param string $etat
* on ou off
* @param string|array $source
* array : sous tableau de $_FILE issu de l'upload
* string : fichier source (chemin complet ou chemin relatif a tmp/upload)
* @return string
*/
function logo_modifier($objet, $id_objet, $etat, $source)
{
$chercher_logo = charger_fonction('chercher_logo', 'inc');
$objet = objet_type($objet);
$primary = id_table_objet($objet);
include_spip('inc/chercher_logo');
$type = type_du_logo($primary);
// nom du logo
$nom = $type . $etat . $id_objet;
// supprimer le logo eventueel existant
logo_supprimer($objet, $id_objet, $etat);
include_spip('inc/documents');
$erreur = "";
if (!$source) {
spip_log("spip_image_ajouter : source inconnue");
$erreur = "source inconnue";
return $erreur;
}
$file_tmp = _DIR_LOGOS . $nom . '.tmp';
$ok = false;
// fichier dans upload/
if (is_string($source)) {
if (file_exists($source)) {
$ok = @copy($source, $file_tmp);
} elseif (file_exists($f = determine_upload() . $source)) {
$ok = @copy($f, $file_tmp);
}
} elseif (!($erreur = check_upload_error($source['error'], "", true))) {
// analyse le type de l'image (on ne fait pas confiance au nom de
// fichier envoye par le browser : pour les Macs c'est plus sur)
$ok = deplacer_fichier_upload($source['tmp_name'], $file_tmp);
}
if ($erreur) {
return $erreur;
}
if (!$ok or !file_exists($file_tmp)) {
spip_log($erreur = "probleme de copie pour {$file_tmp} ");
return $erreur;
}
$size = @getimagesize($file_tmp);
$type = !$size ? '' : ($size[2] > 3 ? '' : $GLOBALS['formats_logos'][$size[2] - 1]);
if ($type) {
@rename($file_tmp, $file_tmp . ".{$type}");
$file_tmp = $file_tmp . ".{$type}";
$poids = filesize($file_tmp);
if (defined('_LOGO_MAX_WIDTH') or defined('_LOGO_MAX_HEIGHT')) {
if (defined('_LOGO_MAX_WIDTH') and _LOGO_MAX_WIDTH and $size[0] > _LOGO_MAX_WIDTH or defined('_LOGO_MAX_HEIGHT') and _LOGO_MAX_HEIGHT and $size[1] > _LOGO_MAX_HEIGHT) {
$max_width = (defined('_LOGO_MAX_WIDTH') and _LOGO_MAX_WIDTH) ? _LOGO_MAX_WIDTH : '*';
$max_height = (defined('_LOGO_MAX_HEIGHT') and _LOGO_MAX_HEIGHT) ? _LOGO_MAX_HEIGHT : '*';
// pas la peine d'embeter le redacteur avec ca si on a active le calcul des miniatures
// on met directement a la taille maxi a la volee
if (isset($GLOBALS['meta']['creer_preview']) and $GLOBALS['meta']['creer_preview'] == 'oui') {
include_spip('inc/filtres');
$img = filtrer('image_reduire', $file_tmp, $max_width, $max_height);
$img = extraire_attribut($img, 'src');
$img = supprimer_timestamp($img);
if (@file_exists($img) and $img !== $file_tmp) {
spip_unlink($file_tmp);
@rename($img, $file_tmp);
$size = @getimagesize($file_tmp);
}
}
// verifier au cas ou image_reduire a echoue
if (defined('_LOGO_MAX_WIDTH') and _LOGO_MAX_WIDTH and $size[0] > _LOGO_MAX_WIDTH or defined('_LOGO_MAX_HEIGHT') and _LOGO_MAX_HEIGHT and $size[1] > _LOGO_MAX_HEIGHT) {
spip_unlink($file_tmp);
$erreur = _T('info_logo_max_poids', array('maxi' => _T('info_largeur_vignette', array('largeur_vignette' => $max_width, 'hauteur_vignette' => $max_height)), 'actuel' => _T('info_largeur_vignette', array('largeur_vignette' => $size[0], 'hauteur_vignette' => $size[1]))));
}
}
}
if (!$erreur and defined('_LOGO_MAX_SIZE') and _LOGO_MAX_SIZE and $poids > _LOGO_MAX_SIZE * 1024) {
spip_unlink($file_tmp);
$erreur = _T('info_logo_max_poids', array('maxi' => taille_en_octets(_LOGO_MAX_SIZE * 1024), 'actuel' => taille_en_octets($poids)));
}
if (!$erreur) {
@rename($file_tmp, _DIR_LOGOS . $nom . ".{$type}");
}
} else {
spip_unlink($file_tmp);
$erreur = _T('info_logo_format_interdit', array('formats' => join(', ', $GLOBALS['formats_logos'])));
}
return $erreur;
}
示例15: ajout_fichier
function ajout_fichier($doc_file, $dest, $cpt_doc, $id_groupe)
{
global $max_size, $total_max_size;
/* Vérification du type de fichier */
$ext = '';
//if (my_ereg("\.([^.]+)$", $doc_file['name'][$cpt_doc], $match)) {
if (function_exists("mb_ereg") && mb_ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match) || function_exists("ereg") && ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match)) {
$ext = corriger_caracteres(my_strtolower($match[1]));
$ext = corriger_extension($ext);
}
$query = "SELECT id_type FROM ct_types_documents WHERE extension='{$ext}' AND upload='oui'";
$result = sql_query($query);
if ($row = @sql_row($result, 0)) {
$id_type = $row[0];
} else {
echo "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.\nSi vous trouvez cela regrettable, contactez l'administrateur.\nIl pourra modifier ce paramétrage dans\n *Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*.";
die;
}
/* Vérification de la taille du fichier */
$max_size_ko = $max_size / 1024;
$taille = $doc_file['size'][$cpt_doc];
if ($taille > $max_size) {
echo "Erreur : Téléchargement impossible : taille maximale autorisée : " . $max_size_ko . " Ko";
die;
}
if ($taille == 0) {
echo "Le fichier sélectionné semble vide : transfert impossible.";
die;
}
$query = "SELECT DISTINCT sum(taille) somme FROM ct_documents d, ct_entry e WHERE (e.id_groupe='" . $id_groupe . "' and e.id_ct = d.id_ct)";
$total = sql_query1($query);
if ($total + $taille > $total_max_size) {
echo "Erreur : Téléchargement impossible : espace disque disponible (" . ($total_max_size - $total) / 1024 . " Ko) insuffisant.";
die;
}
/* Crétion du répertoire de destination */
if (!creer_repertoire($dest)) {
echo "Erreur : Problème d'écriture sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
echo $dest;
die;
}
/* Recopier le fichier */
$nom_sans_ext = mb_substr(basename($doc_file['name'][$cpt_doc]), 0, mb_strlen(basename($doc_file['name'][$cpt_doc])) - (mb_strlen($ext) + 1));
$nom_sans_ext = my_ereg_replace("[^.a-zA-Z0-9_=-]+", "_", $nom_sans_ext);
if (strstr($nom_sans_ext, "..")) {
echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
die;
}
$n = 0;
while (file_exists($newFile = $dest . "/" . $nom_sans_ext . ($n++ ? '-' . $n : '') . '.' . $ext)) {
}
$dest_file_path = $newFile;
if (!deplacer_fichier_upload($doc_file['tmp_name'][$cpt_doc], $dest_file_path)) {
echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site";
die;
}
return $dest_file_path;
}