I am using restify plugin & XHR approach to upload file to server. Below is the client & server code.
Client: XHR is used to send file to server
var rdr= new FileReader();
rdr.onload = function (event) {
var binaryData = event.target.result;
xhr.open('PUT', fileUpload.saveUrl, true);
xhr.send(binaryData);
};
rdr.onerror = function (event) {
//...
};
reader.readAsArrayBuffer(file);
Restify Server: The call to import method is received but the file is not being received.
var restify = require('restify');
var server = restify.createServer();
server.use(restify.acceptParser(server.acceptable));
server.use(restify.bodyParser());
server.use(restify.queryParser());
server.use(restify.CORS({
credentials: true, // defaults to false
methods: ['GET', 'PUT', 'DELETE', 'POST', 'OPTIONS']
}));
server.use((request, response, next) => {
response.setHeader('Access-Control-Allow-Headers', 'Origin, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, X-Response-Time, X-PINGOTHER, X-CSRF-Token,Authorization');
response.setHeader('Access-Control-Allow-Methods', '*');
response.setHeader('Access-Control-Expose-Headers', 'X-Api-Version, X-Request-Id, X-Response-Time');
response.setHeader('Access-Control-Max-Age', '1000');
next();
});
server.use(restify.bodyParser({
maxBodySize: 0,
mapParams: true,
mapFiles: false,
overrideParams: false,
multipartHandler: function(part) {
part.on('data', function(data) {
/* do something with the multipart data */
});
},
multipartFileHandler: function(part) {
part.on('data', function(data) {
/* do something with the multipart file data */
});
},
keepExtensions: false,
uploadDir: './temp',
multiples: true,
hash: 'sha1'
}));
server.on('MethodNotAllowed', function (request, response, cb) {
console.log(request);
console.log(response);
});
function send(request, response, next) {
response.status(200);
return next();
}
server.put('/import', send);
server.listen(8080, function () {
console.log("Server started");
});
module.exports = server;
via Satty
No comments:
Post a Comment