Hi William, Good suggestion, i will refactor my app to use the entity header.
On Monday, June 24, 2013 2:02:26 PM UTC+8, Austin William Wright wrote: > > I'd just like to point out the existence of the Content-Range > header<http://tools.ietf.org/html/rfc2616#section-14.16>. > It's not thoroughly described for use in making uploads, but since it's an > entity-header, you can use it in requests/uploads as well as responses, and > there's several examples of it being used for making partial uploads. > > Austin Wright. > > On Saturday, June 22, 2013 6:35:17 AM UTC-7, yu sun wrote: >> >> I'm working on file uploading and want to chunk upload files to the >> server, but when i combined the chunked files, the file hash changed(diff >> from the orignal hash). There might be some mistakes. Please help. thx thx. >> >> There is a strange thing that if I upload the chunk file with chunk size >> larger than 11.4% of the file size, will got the hash correctly. Im on >> nodejs 0.10.6 now. >> >> *My client side code:* >> function putFile(fileStat){ >> putChunks(fileStat.totalChunkNumber); >> function putChunks(totalChunkNumber){ >> for(var i = 1; i <= totalChunkNumber; i++){ >> putChunkFile(fileStat, i) >> } >> } >> } >> >> function putChunkFile(fileStat, chunkNumber){ >> >> var filePath = fileStat.filePath; >> var _start = (chunkNumber - 1) * CHUNK_SIZE; >> var _end = _start + CHUNK_SIZE -1; >> >> if (_end >= fileStat.fileSize){ >> _end = fileStat.fileSize; >> } >> >> var req = createRequest("/testfiles", "PUT", >> { >> 'X-Chunk-Number': chunkNumber, >> 'X-Chunk-Size': _end - _start + 1 >> }); >> >> var sourceStream = fs.createReadStream(filePath, {start: _start, end: >> _end}); >> >> sourceStream.on("open", function(){ >> sourceStream.pipe(req); >> }); >> >> sourceStream.on("end", function(){ >> req.end(); >> }); >> } >> >> *Server side code:* >> exports.put = function(req, res){ >> var list = [] >> var length = 0; >> req.on("data", function(data){ >> list.push(data); >> length += data.length; >> }).on("end",function(){ >> var buffer = Buffer.concat(list, length); >> fs.writeFile(path.join(getFilePath(), 'part' + >> req.headers['x-chunk-number']), buffer, function(){ >> res.status(200); >> res.write('uploaded ' + req.headers['x-chunk-number']); >> res.end(); >> }); >> }); >> } >> >> -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
