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

标签 javascript node.js express hapi.js

谁能告诉我如何使用 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 已经在使用多方 使用 pez处理多部分发布请求。来自 hapi 文档;

If the payload is 'multipart/form-data' and parse is true, fields values are presented as text while files are provided as streams. File streams from a 'multipart/form-data' upload will also have a property hapi containing filename and headers properties.

示例;

server.route({
   method: 'POST',
   path: '/create',
   config: {
      payload:{
            maxBytes: 209715200,
            output:'stream',
            parse: true
      }, 
      handler: function (request, reply) {
          request.payload["htmlInputName"].pipe(fs.createWriteStream("test"));
      }
});

关于javascript - 如何使用 nodejs 和 HAPI 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21823379/

相关文章:

node.js - 沿 node-express 应用程序传递和更新数据

node.js - 如何呈现子文件夹中的 HTML 文件?

javascript - Android、WebView 和 SpeechRecognition-API

javascript - Handlebars Helper 返回数组但呈现逗号分隔的字符串

javascript - Webpack - 排除 node_modules 也保持独立的浏览器和服务器管理

javascript - 如何安装咕噜

node.js - 如何使用mongoose在mongodb中使用纬度和经度查找附近的点

javascript - jQuery - 隐藏 Bootstrap 模式中的元素

javascript - 如果 child 悬停在 mouseover 事件上的 jQuery 再次触发

javascript - 切换按钮的 jQuery 媒体查询 - 根据屏幕宽度不同的操作