失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > nodeJs 接收上传文件

nodeJs 接收上传文件

时间:2019-06-08 09:35:33

相关推荐

nodeJs 接收上传文件

前台:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title lang="en">upload</title>

</head>

<body>

<form method="post" id="uploadForm" action="http://localhost:3005/api/uploadKyc" enctype="multipart/form-data">

<label for="upload">File (Binary):</label>

<input type="file" name="idCardFront" class="fileupload" /><br/>

<input type="file" name="idCardBack" class="fileupload" /><br/>

<input type="file" name="idCardhandheld" class="fileupload" /><br/>

<input type="file" name="swornVideo" class="fileupload" /><br/>

<input type="button" class="submit" value="Submit" οnclick="sendFormFromHTML(this.form);"/>

</form>

</body>

</html>

<script type="text/javascript">

function sendFormFromHTML(form) {

//form = $(".uploadForm").form;

var formData = new FormData(form);

formData.append('id', '123456'); // alternative to hidden fields

var xhr = new XMLHttpRequest();

xhr.open('POST', form.action, true);

xhr.onload = function(e) { alert(this.responseText) };

xhr.send(formData);

return false;

}

</script>

还用form表单提交会自动跳转页面,所以改为ajax上传:

<form id="uploadForm" enctype="multipart/form-data">

<label for="upload">File (Binary):</label>

<input type="file" name="idCardFront" id="idCardFront" /><br/>

<input type="file" name="idCardBack" id="idCardBack" /><br/>

<input type="file" name="idCardhandheld" id="idCardhandheld" /><br/>

<input type="file" name="swornVideo" id="swornVideo" /><br/>

<input type="button" value="submit" οnclick="sendFormFromHTML(this.form);"/>

</form>

</body>

</html>

<script type="text/javascript" src="lib/jquery.min.js"></script>

<script type="text/javascript">

function sendFormFromHTML(form) {

var formData = new FormData(form);

// formData.append('id', '123456'); // alternative to hidden fields

$.ajax({

url: "http://localhost:3005/api/uploadKyc",

type: "POST",

data: formData,

cache: false,

processData: false, // 告诉jQuery不要去处理发送的数据

contentType: false // 告诉jQuery不要去设置Content-Type请求头});

success: function(result){

alert(result.code);

alert(result.msg);

}

});

};

</script>

后台:

var form = new multiparty.Form();

form.parse(request.payload, function(err, fields, files) {

fs.readFile(files.idCardFront[0].path,function(err,data){

if(!data || err){

return ryply({code:401,msg:"请上传身份证正面照片"});

}

var fileName = files.idCardFront[0].originalFilename;

var types = fileName.split('.'); //将文件名以.分隔,取得数组最后一项作为文件后缀名。

var picType = String(types[types.length-1]).toLocaleLowerCase();

if(picType=="jpg" || picType=="png" || picType=="jpeg"){

var date = new Date();

var ms = Date.parse(date); //计算当前时间与1970年1月1日午夜相差的毫秒数 赋值给ms以确保文件名无重复。

forntPath = appDir+"/kycFiles/front"+ ms +"." + String(types[types.length-1]);

fs.renameSync(files.idCardFront[0].path, forntPath);

}else{

return reply({code:411,msg:"身份证正面照片格式不正确"});

}

})

};

如果觉得《nodeJs 接收上传文件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。