A. nodejs 上傳文件哪個插件好
前端要用easyui的filebox插件,然後點擊按鈕後會非同步上傳
B. node.js用uploadify上傳本地圖片後,把它放到canvas,無法使用todataurl()方法
你可以用一個file的input,在change事件里建立一個FileReader的instance,用readAsDataURL()讀取文件的內容,不用上傳伺服器。
C. Nodejs怎麼獲取上傳文件的MD5
可以使用第三方的js庫,比如spark-md5.js。上傳文件後,調用對應的api即可以獲取到上傳文件的md5。
D. nodejs上傳文件,文件內容中文亂碼
前端上傳的是gbk, 你後端當成utf8, 當然這樣了.
一種是你前端規定只能上傳utf8文本文件;
還有一種你知道前端大部分都是gbk, 後端做gbk到utf8的轉化. (我那個時候nodejs似乎還沒內置gbk解碼器, 現在不知道了)
E. nodejs怎樣獲取一個上傳文件的MD5碼
MD5中的MD代表Message Digest,就是信息摘要的意思,不過這個信息摘要不是信息內容的縮寫,而是根據公開的MD5演算法對原信息進行數學變換後得到的一個128位(bit)的特徵碼。
1、D5就是求字元串的md5,文件就是一個字元串;
2、前台目前就別考慮讀文件內容了(大部分瀏覽器不行) 都讓後台做;
可以直接看nodeclub源代碼,如下:
var crypto = require('crypto');
exports.encrypt = function (str, secret) {
var cipher = crypto.createCipher('aes192』, secret);
var enc = cipher.update(str, 'utf8』, 『hex』);
enc += cipher.final(『hex』);
return enc;
};
exports.decrypt = function (str, secret) {
var decipher = crypto.createDecipher('aes192』, secret);
var dec = decipher.update(str, 'hex』, 『utf8』);
dec += decipher.final(『utf8』);
return dec;
};
exports.md5 = function (str) {
var md5sum = crypto.createHash(『md5』);
md5sum.update(str);
str = md5sum.digest(『hex』);
return str;
};
exports.randomString = function (size) {
size = size || 6;
var code_string = '』;
var max_num = code_string.length + 1;
var new_pass = '』;
while (size > 0) {
new_pass += code_string.charAt(Math.floor(Math.random() * max_num));
size–;
}
return new_pass;
};
F. nodejs可以上傳大文件嗎
可以。不過要修改。
處理方式為在nodeJs的app.js文件中寫一個use中間件將其大小限制給修改了。
修改代碼:(app.js中)
[javascript]view plain
app.use(express.bodyParser({limit:"5000kb"}));
app.use(express.json({limit:'5000kb'}));
這部分的代碼順序:(這個貌似沒多大作用,不過還是留一個)