Files
notification-elements-demo/node_modules/needle/examples/upload-image.js
Giuliano Silvestro 5d0c9ec7eb Initial commit: notification-elements-demo app
Interactive Angular 19 demo for @sda/notification-elements-ui with
6 sections: Bell & Feed, Notification Center, Inbox, Comments &
Threads, Mention Input, and Full-Featured layout. Includes mock
data, dark mode toggle, and real-time event log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:49:19 +10:00

52 lines
1010 B
JavaScript

var needle = require('../'),
path = require('path');
var image = 'https://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png';
function upload(obj, cb) {
console.log('Uploading image...');
var url = 'http://deviantsart.com';
var opts = {
timeout: 10000,
follow: 3,
multipart: true
};
var params = {
file: obj
}
needle.post(url, params, opts, function(err, resp) {
if (err || !resp.body.match('url'))
return cb(err || new Error('No image URL found.'))
cb(null, JSON.parse(resp.body).url)
})
}
function download(url, cb) {
console.log('Getting ' + url);
needle.get(url, function(err, resp) {
if (err) throw err;
cb(null, resp.body);
})
}
////////////////////////////////////////
// ok, now go.
download(image, function(err, buffer) {
if (err) throw err;
var obj = { buffer: buffer, content_type: 'image/png' };
upload(obj, function(err, url) {
if (err) throw err;
console.log('Image uploaded to ' + url);
})
})