我已經爲客戶端和服務器端代碼分配了一個示例代碼,並進行了完美測試和工作。請根據您的需要進行修改。
服務器端:託管CLOUD9測試 - 因此,它需要通過process
對象由供應商提供的公網IP和端口。根據您的託管環境更改偵聽器。
注:請閱讀在線評論爲更好地理解
var express = require('express');
var app = express();
var fs = require('fs');
var bodyParser = require('body-parser');
var formidable = require('formidable'),
form = new formidable.IncomingForm();
app.post("/", function(req, res, next) {
form.parse(req, function(err, fields, files) {
console.log("File received:\nName:"+files.pdf.name+"\ntype:"+files.pdf.type);
});
form.on('end', function() {
/* this.openedFiles[0].path -- object Contains the path to the file uploaded
------- Use NodeMailer to process this file or attach to the mail-----------------*/
console.log("PDF raw data:"+ fs.readFileSync(this.openedFiles[0].path, "utf8"));
res.status(200).send("thank you");
});
})
.listen(process.env.PORT, process.env.IP, function() {
console.log('Server app listening');
});
客戶端:Fiddler
注:我沒貼imgData
爲SO有字符限制。請參閱fiddler鏈接以獲取客戶端代碼。將請求URL更改爲您的服務器。客戶端使用Blob API,這是一個HTML5標準。所以請在兼容HTML5的瀏覽器上進行測試。
var imgData = [[**Copy the same image provided by JSpdf example. Check the fiddler for complete code**]]
var doc = new jsPDF();
doc.setFontSize(40);
doc.text(35, 25, "Octonyan loves jsPDF");
doc.addImage(imgData, 'JPEG', 15, 40, 180, 180);
var data = new Blob([doc.output()], {
type: 'application/pdf'
});
var formData = new FormData();
formData.append("pdf", data, "myfile.pdf");
var request = new XMLHttpRequest();
request.open("POST", "https://saltjs-nirus.c9.io"); // Change to your server
request.send(formData);
參考文獻:
您可以使用[FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData)API –
@rahilwazir通過AngularJS發送文件但是文件是否在相同的格式..我的意思是在這種情況下發送到服務器後的PDF? – Amarnath
是相同的格式 –