首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将数据从res.write()传递到强大的文件名

将数据从res.write()传递到强大的文件名
EN

Stack Overflow用户
提问于 2018-08-07 22:54:51
回答 1查看 192关注 0票数 1

我使用节点来允许用户上传文件:

代码语言:javascript
复制
var http = require('http');
var formidable = require('formidable');
var fs = require('fs');

http.createServer(function (req, res) {
  if (req.url == '/fileupload') {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      var oldpath = files.filetoupload.path;
      var newpath = 'team_1_uploads/' + files.filetoupload.name + files.filetoupload.token;
      fs.rename(oldpath, newpath, function (err) {
        if (err) throw err;
        res.write('            FILE UPLOADED!');
        res.end();
      });
 });
  } else {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('<div align="center">');
    res.write('<html>');
    res.write('<body>');
    res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
    res.write('<input id="file_input" type="file" name="filetoupload" style="margin-left: 100px; margin-bottom: 10px; color: transparent"><br>');
    res.write('<input id="submit_button" type="submit">');
    res.write('</form>');
    res.write('</body>');
    res.write('</html>');
    res.write('</div>');
    return res.end();
  }
}).listen(3131);

如您所见,我正在尝试将一个标记附加到文件名上。upload按钮通过前端的iframe由节点提供服务。我可以使用postMessage将令牌传递给res.write(),方法是将以下脚本添加到res.write():

代码语言:javascript
复制
res.write("<script>window.addEventListener('message', function(event) { document.getElementById('file_input').dataset.token = event.data; global_hold_token = event.data; })</script>");

这将通过使用form元素上的data属性将令牌设置为form元素。通过使用postMessage从前端接收消息:

代码语言:javascript
复制
$('#my_frame')[0].contentWindow.postMessage(token, '*')

我想我可以使用强大的对数据属性进行解析。但是node似乎不能访问表单元素上的数据属性,即使它可以访问名称。

EN

回答 1

Stack Overflow用户

发布于 2018-08-08 04:57:05

?token=xxxxxx是一个GET参数。您可以从req.query对象下的req对象中获取这些内容

http://expressjs.com/en/api.html#req.query

因此,在您的示例中,它将是req.query.token格式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51729786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档