X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fgetdocument.php;fp=www%2Fecrire%2Finc%2Fgetdocument.php;h=a4f826078dc5de51f44f893258880e8ccd8517d7;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c
diff --git a/www/ecrire/inc/getdocument.php b/www/ecrire/inc/getdocument.php
new file mode 100644
index 0000000..a4f8260
--- /dev/null
+++ b/www/ecrire/inc/getdocument.php
@@ -0,0 +1,198 @@
+ '.' AND $f <> '..'
+ AND is_dir("$nom/$f"))
+ effacer_repertoire_temporaire("$nom/$f");
+ }
+ closedir($d);
+ @rmdir($nom);
+}
+
+// http://doc.spip.org/@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\d]+/", "_",
+ 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);
+}
+
+//
+// Deplacer un fichier
+//
+
+// http://doc.spip.org/@deplacer_fichier_upload
+function deplacer_fichier_upload($source, $dest, $move=false) {
+ // Securite
+ if (substr($dest,0,strlen(_DIR_RACINE))==_DIR_RACINE)
+ $dest = _DIR_RACINE.preg_replace(',\.\.+,', '.', substr($dest,strlen(_DIR_RACINE)));
+ else
+ $dest = preg_replace(',\.\.+,', '.', $dest);
+
+ if ($move) $ok = @rename($source, $dest);
+ else $ok = @copy($source, $dest);
+ if (!$ok) $ok = @move_uploaded_file($source, $dest);
+ if ($ok)
+ @chmod($dest, _SPIP_CHMOD & ~0111);
+ else {
+ $f = @fopen($dest,'w');
+ if ($f) {
+ fclose ($f);
+ } else {
+ include_spip('inc/flock');
+ raler_fichier($dest);
+ }
+ spip_unlink($dest);
+ }
+ return $ok ? $dest : false;
+}
+
+
+// Erreurs d'upload
+// renvoie false si pas d'erreur
+// et true si erreur = pas de fichier
+// pour les autres erreurs affiche le message d'erreur et meurt
+// http://doc.spip.org/@check_upload_error
+function check_upload_error($error, $msg='') {
+ global $spip_lang_right;
+
+ if (!$error) return false;
+
+ spip_log("Erreur upload $error -- cf. http://php.net/manual/fr/features.file-upload.errors.php");
+
+ switch ($error) {
+
+ case 4: /* UPLOAD_ERR_NO_FILE */
+ return true;
+
+ # on peut affiner les differents messages d'erreur
+ case 1: /* UPLOAD_ERR_INI_SIZE */
+ $msg = _T('upload_limit',
+ array('max' => ini_get('upload_max_filesize')));
+ break;
+ case 2: /* UPLOAD_ERR_FORM_SIZE */
+ $msg = _T('upload_limit',
+ array('max' => ini_get('upload_max_filesize')));
+ break;
+ case 3: /* UPLOAD_ERR_PARTIAL */
+ $msg = _T('upload_limit',
+ array('max' => ini_get('upload_max_filesize')));
+ break;
+
+ default: /* autre */
+ if (!$msg)
+ $msg = _T('pass_erreur').' '. $error
+ . '
' . propre("[->http://php.net/manual/fr/features.file-upload.errors.php]");
+ break;
+ }
+
+ spip_log ("erreur upload $error");
+
+ if(_request("iframe")=="iframe") {
+ echo "
"
+ .taille_en_octets($_SERVER["CONTENT_LENGTH"])
+ .'
'
+ ._T('upload_limit',
+ array('max' => ini_get('upload_max_filesize')))
+ ."