0
我有從客戶端(設備)逐包發送的二進制映像文件。我該如何妥善處理這個問題並將其保存到數據庫中,以防止將來在轉換後在圖像上有條紋線。如何正確處理來自套接字的傳入二進制數據
var net = require('net');
var server = net.createServer(function(socket){
socket.on('end', function() {
// somstuffhere();
});
socket.on('data',function(data){
var revdata += data.toString('binary'); // receive first the buffer data.
var checkdata = revdata.substr(-5);
if(checkdata.substr(0,1) == '*'){
var hexdata = new Buffer(revdata, 'ascii').toString('hex');
// After converting to hex.Save database here..
}else{
revdata += data.toString('binary');
}
});
server.listen(3020,'127.0.0.1', function() {
console.log("server is up!");
});
列字段的數據類型是VARCHAR(3072).
這是否有意義?
你不能「assum並[e]接收二值圖像的完整的1個數據」。這是你的第一個問題。 TCP是一種字節流,而不是消息傳遞協議。至於3072是否足夠大,您的圖片只有您可能知道。 – EJP
1.沒有人會跟隨鏈接。 2.構成問題一部分的材料必須包含在問題中。 3.我已經說過,只有你知道你的圖像有多大。但是我會爲此使用Blob,而不是帶編碼的'VARCHAR'。 – EJP
如果你使用Blob,並且不要搞亂任何編碼,數據將被保存爲二進制。 – EJP