1. 程式人生 > >Node.js——異步上傳文件

Node.js——異步上傳文件

formdata 處理 前臺 field fields spa word fun class

前臺代碼

submit() {
    var file = this.$refs.fileUpload.files[0];
    var formData = new FormData();
    formData.append("file", file);
    formData.append("username", this.username);
    formData.append("password", this.password);
    axios.post("http://127.0.0.1:3000", formData).then(res => {
    console.log(res);
    });
}

後臺代碼

app.use(function (req, res) {
    var form = new formidable.IncomingForm();
    form.uploadDir = path.join(__dirname, ‘uploads‘)

    form.parse(req, function (err, fields, files) {
        fs.rename(files.file.path, path.join(__dirname, ‘uploads‘, files.file.name), function (err) {
            
if (!err) { return res.end(‘ok‘) } res.end(‘err‘) }) }); })

註意

  • 前端利用formData才能拿到file數據,這是xhr異步上傳文件提供的接口
  • 後臺代碼如果不使用formidable這個包,那麽對接受過來的二進制數據自己處理是非常麻煩的

Node.js——異步上傳文件