当前位置: 首页 > 面试题库 >

如何使用nodejs和HAPI上传文件?

万俟英锐
2023-03-14
问题内容

谁能告诉我如何使用nodejs和HAPI上传文件?

我在处理程序中获取二进制数据。

这是我的html代码:

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;
    }



<form method="post" id="uploadForm" action="http://localhost:3000/api/uploadfiles" enctype="multipart/form-data">
    <label for="upload">File (Binary):</label>
    <input type="file" name="upload" class="fileupload" /><br/>

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

这是我的Nodejs代码:

server.route({
    method: 'POST',
    path: '/api/uploadfiles',
    config: {        
        handler: currentposition.uploadFiles,
    }
});

uploadFiles:function(req,reply){
    console.log(req.payload);
}

问题答案:

最后,我得到了使用HAPI上传大型文件的解决方案,并感谢Roman。

解决方法如下:

server.js代码

server.route({
    method: 'POST',
    path: '/api/uploadfiles',
    config: {
          payload:{
                maxBytes:209715200,
                output:'stream',
                parse: false
          }, 
          handler: currentposition.uploadFiles,
    }
});

处理程序代码:

var currentpositionApi = {

    fs : require('fs'),
    multiparty: require('multiparty'),
    uploadFiles:function(req,reply){
         var form = new currentpositionApi.multiparty.Form();
            form.parse(req.payload, function(err, fields, files) {
                currentpositionApi.fs.readFile(files.upload[0].path,function(err,data){
                    var newpath = __dirname + "/"+files.upload[0].originalFilename;
                    currentpositionApi.fs.writeFile(newpath,data,function(err){
                        if(err) console.log(err);
                        else console.log(files)
                    })
                })
                console.log(files)

            });

    }
}


 类似资料:
  • 我有以下请求,我想在nodejs中写一个post请求: POST /rest-api/hashDb/createAndUploadHTTP/1.1 主持人:192.168.101.54 连接:保持活力 内容长度:428 产地:https://192.168.101.54 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KH

  • 本文向大家介绍NodeJS使用formidable实现文件上传,包括了NodeJS使用formidable实现文件上传的使用技巧和注意事项,需要的朋友参考一下 最近自学了一下NodeJS,然后做了一个小demo,实现歌曲的添加、修改、播放和删除的功能,其中自然要实现音乐和图片的上传功能。于是上网查找资料,找到了一个formidable插件,该插件可以很好的实现文件的上传功能。该小demo用到了My

  • 我正在创建一个简单的应用程序,作为Ionic2的学习体验,它连接到运行multer的节点服务器上传图像。我遇到的问题是,我需要从multer获得最后的文件名回到上传它的应用程序,以保存它在本地。我使用@Ionic/Cloud-Angular中的Auth和User模块进行身份验证和用户信息。User对象有一个details对象,其中包含“name”、“email”、“username”、“image

  • 问题内容: 当我使用XMLHttpRequest时,使用可以正确上传文件。但是,当我切换到时,我的代码将中断。 这是有效的原始代码: 这是我失败的尝试: 我究竟做错了什么?如何使用AJAX正确上传文件? 问题答案: 您必须添加方法,以便jQuery不会更改标头或数据(这会破坏当前代码)。

  • 问题内容: 我想知道如何使用cURL或PHP中的任何其他文件上传文件。我在Google中搜索了很多次,但没有结果。 换句话说,用户看到表单上的文件上传按钮,该表单被发布到我的php脚本中,然后我的php脚本需要将其重新发布到另一个脚本(例如,在另一个服务器上)。 我有此代码来接收文件并上传 代码: 我希望代码将文件发送到接收者文件。 问题答案: 采用:

  • Setup $ yarn install && open http://localhost:4000 && yarn run start Medium: https://medium.com/@wesharehoodies/how-to-setup-a-powerful-api-with-nodejs-graphql-mongodb-hapi-and-swagger-e251ac189649?