1+ < ?
2+ const UPLOAD_FOLDER="data/uploads/";
3+ const UPLOADS_CSV=UPLOAD_FOLDER+"uploads.csv";
4+
5+ const {importHead}=globals.functions;
6+ const account=service_require_try("server/account/account.new");
7+ const fsp=require("fs/promises");
8+
9+ let folder="anonym";
10+ let nickname;
11+ account:{
12+ if(!account) break account;
13+ const {allowed,data}=account.authUserByInput(input);
14+ if(!allowed) break account;
15+ folder=data.account.username;
16+ nickname=data.account.nickname;
17+ };
18+
19+ const tryDirCreate=async dir=> {
20+ try{
21+ await fsp.mkdir(dir);
22+ return true;
23+ }catch(e){return false};
24+ }
25+ ?> <!DOCTYPE html>
26+ < html >
27+ < head >
28+ < ?=importHead({
29+ input,
30+ title: "Dateien-Uploader",
31+ tabs: 2,
32+ })?>
33+ </ head >
34+ < body >
35+ < h1 > Dateien-Uploader</ h1 >
36+ < ?
37+ if(input.file){
38+ log("USER: "+folder+"; UPLOADED: "+input.file.filename);
39+ await tryDirCreate(UPLOAD_FOLDER);
40+ const target_folder=UPLOAD_FOLDER+folder+"/";
41+ await tryDirCreate(target_folder);
42+ const d=new Date();
43+ const target_name=`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}_${input.file.filename}`;
44+ const target=target_folder+target_name;
45+ await fsp.writeFile(target,input.file.data);
46+ // UPLOAD_TIME; FILENAME; FILE_TYPE; FILE_SRC; FILE_SIZE
47+ await fsp.appendFile(UPLOADS_CSV,[
48+ d.getTime(),
49+ input.file.filename,
50+ input.file.type,
51+ target,
52+ input.file.data.length,
53+ ].join("; ")+"\n");
54+ delete input.file.data;
55+ ?> < p > Datei Erfolgreich Hochgeladen.</ p >
56+ < ?
57+ }
58+ else{
59+ log("USER: "+folder+"; visited, not uploaded.");
60+ ?> < p > Lade Dateien hoch die auf Lando's Server landen sollen, ich nutze diese Funktion bspw. um Dateien von dem Handy auf den Server zu bekommen.</ p >
61+ < p > Info: Dein Upload wird im < code > uploads/< ?=folder?> </ code > abgelegt werden. < ?=nickname?("Angemeldet als: "+nickname):"Datei Upload vollkommen Anonym, nicht nachverfolgbar"?> .</ p >
62+ < form onsubmit ="return lock_all(); " method =post enctype =multipart/form-data >
63+ < input type =file name =file >
64+ < p > < button id =btn_submit > DATEI HOCHLANDEN</ button > </ p >
65+ </ form >
66+ < div style =display:none id =view_uploading >
67+ < progress style =width:100% > </ progress >
68+ < p > < b > Datei wird hochgeladen bitte hab Geduld...</ b > </ p >
69+ </ div >
70+ < script >
71+ function lock_all ( ) {
72+ console . log ( "file is uploading..." ) ;
73+ document . getElementById ( "btn_submit" ) . disabled = true ;
74+ document . getElementById ( "view_uploading" ) . style . display = "" ; //.disabled=true;
75+ return true ;
76+ }
77+ </ script >
78+ < ?
79+ }
80+ ?> </ body >
81+ </ html >
0 commit comments