我寫在node.js中的圖像上傳,我上傳了來自客戶端的文件:node.js如何組裝文件上傳?
<form id="frmImgUpload"
enctype="multipart/form-data"
action="/uploads/"
method="POST">
<input id="btnFile"
style="float:right;"
type="file"/>
<input id="btnUpload"
style="float:right;"
type="button"
value="Upload"/>
</form>
的代碼進行上傳:
$("#btnUpload").click(function() {
$("#btnFile").attr("name", strCompanyKey);
$("#frmImgUpload").submit();
});
在我所顯示的服務器該數據(只是一小段代碼):
[ '------WebKitFormBoundaryI206ASCJdnqVyOo0\r\nContent-Disposition: form-data; name="syberdyne"; filename="simonplatten.png"\r\nContent-Type: image/png\r\n\r\n�PNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0000�\u0000\u0000\u0000l\b\u0006\u0000\u0000\u0000Ԃ\b�\u0000\u0000\u0000\tpHYs\u0000\u0000\u000b\u0013\u0000\u0000\u000b\u0013\u0001\u0000��\u0018\u0000\u0000\nOiCCPPhotoshop ICC profile\u0000\u0000xڝSgTS�\u0016=���BK���KoR\u0015\b RB��\u0014�',
'*!\t\u0010J���\u0015Q�\u0011EE\u0004\u001bȠ�\u0003����\u0015Q,\f�\n�\u0007����������{�kּ������>������\u0007�\b\f�H3Q5�\f�B\u001e\u0011�������[email protected]�\n$p\u0000\u0010\b�d!s�#\u0001\u0000�<<+"�\u0007�\u0000\u0001x�\u000b\b\u0000�M��0\u001c��\u000f�B�\\\u0001��\u0001�t�8K\b�\u0014\[email protected]�B�\[email protected]\u0001���',
我想要做的就是將這些數據重組爲原始文件。他們是否有任何API或教程能幫助我實現這一目標?
我已經分裂從客戶端接收的內容:
var strBody = "";
request.on("data", function(chunk) {
strBody += chunk;
});
request.on("end", function() {
console.dir(strBody.split("\r\n"));
});
這導致:
[ '------WebKitFormBoundarynBkMCKI8RBvIReTF',
'Content-Disposition: form-data; name="syberdyne";filename="simonplatten.png"','Content-Type: image/png','','�PNG','\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0000�\u0000\u0000\u0000l\b\u0006\u0000\u0000\u0000Ԃ\b�\u0000\u0000\u0000\tpHYs\u0000\u0000\u000b\u0013\u0000\u0000\u000b\u0013\u0001\u0000��\u0018\u0000\u0000\nOiCCPPhotoshop ICC profile\u0000\u0000xڝSgTS�\u0016=���BK���KoR\u0015\b RB��\u0014�&*!\t\u0010J���\u0015Q�\u0011EE\u0004\u001bȠ�\u0003����\u0015Q,\f�\n�\u0007����������{�kּ������>������\u0007�\b\f�H3Q5�\f�B\u001e\u0011�������[email protected]�001\u0000O��y���7\u0000\u0000\u0000\u0000IEND�B`�',
'------WebKitFormBoundarynBkMCKI8RBvIReTF--',
'' ]
這僅僅是一個數據的片段,它看起來像二進制數據進行編碼不知何故,我能打電話解碼它嗎?
我安裝了'可怕的',我該怎麼解析它?
https://coligo.io/building-ajax-file-uploader-with-node/ – Ouroborus
@Ouroborus,我已經下載了強大的,我怎麼解析它,我沒有使用快遞。 – SPlatten
Formidable確實有[文檔](https://github.com/felixge/node-formidable/blob/master/Readme.md)。看起來你傳遞了請求對象和回調函數。回調和一些事件可以讓你對錶單數據做一些事情。 'field'和'file'事件可能是你感興趣的。 – Ouroborus