ForgeTotal.js 5
cs

Total.js 5

Ukládání nahraných souborů přes FILESTORAGE

Total.js 5 · total5@0.0.19 filesuploadstorage Spuštěno s Total.js 5

FILESTORAGE(name) je úložiště souborů: soubory se ukládají pod id (použij UID()) a podle něj se i vracejí. Nahrávání přijmi přes @upload, ulož přes file.fs(storage, id, callback) a stahování obsluhuj přes $.filefs(storage, id), které pošle uložený soubor s jeho content-type.

Název úložiště pochází ze souboru config, takže se může lišit podle prostředí.

config
fs : files
controllers/files.js
exports.install = function() {
	ROUTE('POST /upload/ @upload <5mb', upload);
	ROUTE('FILE /downloads/*.*', download);
};

function upload($) {

	var file = $.files[0];

	if (!file) {
		$.invalid('No file');
		return;
	}

	var id = UID();

	file.fs(CONF.fs, id, function(err) {
		if (err)
			$.invalid(err);
		else
			$.json({ id: id, url: '/downloads/' + id + '.' + file.extension, filename: file.filename, size: file.size });
	});
}

function download($) {
	// /downloads/<id>.<extension>
	var name = $.split[1];
	var id = name.substring(0, name.lastIndexOf('.'));
	$.filefs(CONF.fs, id);
}