Uw eigen upload-bestand schoonmaken en query links bouwen
Geüploade tijdelijke bestanden verdwijnen normaal gesproken wanneer het verzoek wordt vrijgegeven. $.autoclear(false) bewaart ze voor werk dat het antwoord overleeft: je applicatie moet ze dan verplaatsen of verwijderen. $.clear() plant het verwijderen van verwijderbare uploads en leegt $.files; verwijderen van schijf is asynchroon. Bewaar nooit willekeurige door een client aangeleverde paden voor latere verwijdering.
In 0.0.19 bouwen query links met de publieke QUERIFY() helper en een kopie van de query, zoals dit recept laat zien.
De map met bewaarde bestanden en de opruim-endpoints hieronder zijn een lokale fixture; een applicatie hoort afgebakend eigenaarschap en duurzame opslag te gebruiken in plaats van deze endpoints bloot te stellen.
var paths = Object.create(null);
exports.install = function() {
ROUTE('POST /upload/{mode}/ @upload <1mb', function($) {
var file = $.files[0];
if (!file) return $.invalid(400);
var id = UID();
paths[id] = file.path;
if ($.params.mode === 'retain') $.autoclear(false);
if ($.params.mode === 'clear') $.clear();
$.json({ id: id, files: $.files.length });
});
ROUTE('GET /exists/{id}/', $ => $.json({ exists: !!paths[$.params.id] && F.Fs.existsSync(paths[$.params.id]) }));
ROUTE('POST /cleanup/{id}/', function($) {
var path = paths[$.params.id];
if (path) { F.Fs.rmSync(path, { force: true }); delete paths[$.params.id]; }
$.success();
});
ROUTE('GET /link/', function($) {
var broken = false;
try { $.href('page', '2'); } catch (e) { broken = e instanceof TypeError; }
$.json({ broken: broken, link: QUERIFY('', Object.assign({}, $.query, { page: '2 & more' })) });
});
};