Node js 中的 Values 文件上传器 - 多个文件上传

2024-02-20

我在用着值 ajax 文件上传器 http://valums.com/ajax-upload/

我的nodejs服务器端如下所示:

fileStream = fs.createWriteStream(__dirname+'/../public/images/houses/'+rndname);
req.pipe(fileStream);
req.on('end', function() {
  body = '{"success":"true", "name": "'+rndname+'"}';
  res.writeHead(200, 
    { 'Content-Type':'text/plain'
    , 'Content-Length':body.length
    });
  res.end(body);
});

客户端:

        function createUploader(){            
        var uploader = new qq.FileUploader({
            element: document.getElementById('homepic'),
            action: '/server/upload',
            allowedExtensions: ['jpg', 'png', 'gif'],
            multiple:true,
            onComplete: function(id, fileName, responseJSON){
              $("#homepic").append("<img src='/images/houses/"+responseJSON.name+"' class='mediumpic' />  ");
            }
        });           
    }
window.onload = createUploader;

这一切都适用于单个文件上传,非常棒!

所以想象一下 - 我按下上传按钮,选择图片,它上传得非常快,显示在屏幕上。 现在我想上传另一张。我选择图片,它快速上传到服务器上(我在服务器上看到它),我收到新文件名的响应和成功,我将图片通过我的附加内容放在屏幕上。但图片没有显示出来。我尝试在新选项卡中仅打开图片,但仍然没有任何内容,即使我在服务器上看到它位于正确的目录中。等待 3-5 分钟后,它就会显示出来,甚至不需要刷新页面。是什么导致了这种行为?是管道的问题,我需要打电话给马里奥来修理它还是其他什么? :)


将我的 req.pipe 更改为 req.on('data') 并且它开始工作。不知何故,我的 req.pipe 似乎没有关闭连接,并且“期待”更多数据,即使所有文件都已上传。这就是为什么我无法调用 GET 来文件并且它处于“待处理”状态。 这解决了我的问题:

req.on('data', function(data) { 
      ws.write(data); 
    }); 
    req.on('end', function(data) { 
      var body = '{"success":"true", "name": "'+rndname+'"}';
      res.writeHead(200, 
        { 'Content-Type':'text/plain'
        , 'Content-Length':body.length
        });
      res.end(body);
    }); 

尽管我找到了问题的解决方案,但如果有人知道为什么 req.pipe 没有关闭连接并且卡住了大约 2-3 分钟直到图片出现,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node js 中的 Values 文件上传器 - 多个文件上传 的相关文章

随机推荐

  • 获取系统插入的正确方法

    我一直在使用view rootWindowInsets stableInsetTop和 Bottom 来获取状态栏和导航栏的高度 但是现在已弃用 并且文档建议使用 https developer android com reference
  • 将数据从 C# 传递到 jQuery

    我是一名独立程序员 正在寻求如何最好地处理以下情况的建议 我目前正在开发一个 C Winforms 应用程序 我正在编写的新功能允许用户创建Processing js 草图以进行数据分析 我构建了一个Processing js IDE 正在
  • 使用包含 NSDictionary 的 NSMutableArray 进行快速枚举

    是否可以对包含 NSDictionary 的 NSArray 使用快速枚举 我正在运行一些 Objective C 教程 以下代码将控制台踢入 GDB 模式 NSMutableArray myObjects NSMutableArray a
  • GIT_MERGE_AUTOEDIT=默认为否

    在我的 git v 1 7 10 2 中 我必须在终端中执行以下操作 GIT MERGE AUTOEDIT no export GIT MERGE AUTOEDIT 所以 每次合并时 我都不会强制发布消息 我应该把它放在哪里 这样默认情况下
  • C++ 流作为成员变量

    我有一个 C 类 我想保存一个用于日志记录的流 在构造对象之后应该能够设置 并且可能重置 流 应该可以将流设置为std cout 或者作为记录到文件的文件流 或者作为字符串流 它只是忽略数据 a dev null各种各样的 无论如何 它应该
  • 如何创建更复杂的 Lucene 查询字符串?

    这个问题是从this https stackoverflow com questions 532365 how to get more out of lucene net问题 我的询问有两个方面 但因为两者都是相关的 所以我认为将它们放在一
  • 为什么 python 在 time.sleep() 之后不打印? [复制]

    这个问题在这里已经有答案了 我用 python 编程已经快两年了 当我看一些旧代码时 我发现了一件非常奇怪的事情 import random sys time try while True print str random randint
  • 在 ajax 请求完成之前,react.js 不会渲染

    我有一个非常简单的React js我需要制作一个组件isomorphic 在服务器上呈现 问题是组件仅在之后才呈现有用的信息ajax请求完成 如下所示 export default React createClass getInitialS
  • 将列表转换为 json 格式 - 快速且简单的方法

    假设我有一个如下所示的对象 MyObject public class MyObject int ObjectID get set string ObjectString get set 我有一个 MyObject 列表 我希望使用 str
  • 同一个表之间多对多的级联删除

    我正在尝试在 SQL Server 中的同一个表之间创建多对多关系 我有一张桌子Object有柱子ObjectId and Name 该关系遵循以下规则 一个孩子可以有多个父母 一个父母可以有很多孩子 ObjectA 可以是 Object
  • Bootstrap 模式 - 隐藏一个然后显示另一个

    我已经使用 jQueryUI 很长时间了 但最近出于美观原因切换到 Bootstrap 我现在正在努力解决我认为是一个简单的问题 并想知道其他更熟悉 Bootstrap 的人是否可以帮助我解决这个问题 我有一个用于动态创建对话框的通用函数
  • 恢复PDF中的图形状态后是否可以绘制路径的笔划?

    我在 PDF 中绘制线条 并希望以 1 1 以外的比例缩放 问题是我得到的笔划看起来像是用书法笔绘制的 在PDF中是否可以以某种方式调整路径大小 恢复图形状态 然后绘制上一个路径的笔划 这就是我在 PDF 中获得书法线条的方法 5 w wi
  • 具有 128 位键的基于时间的字典/哈希表,即超时字典中的值

    我需要制作一个基于时间的字典哈希表 其大小不会无限增长 我所说的 基于时间 具体是指 如果我要在 X 时间添加字典 我希望该项目在 X Y 时间不存在 Y 是超时时间 我愿意将时间存储在字典中或作为键或值的结构 CONTEXT 我收到我们正
  • R:获取给定函数内所有变量和函数的列表和环境(用于并行处理)

    我使用 foreach 进行并行处理 这需要通过列表手动将函数传递到寻址核心的环境 我想自动化这个过程并涵盖所有用例 对于仅使用封闭变量的简单函数来说很容易 然而 一旦要并行处理的函数使用在另一个环境中定义的参数和变量 就会出现问题 考虑以
  • 为什么 IE9 需要元标记来渲染圆角?

    在刚刚发布的IE9中 需要提供meta标签允许CSSborder radius渲染 Why 这个链接 http blogs msdn com b ie archive 2010 06 16 ie s compatibility featur
  • Java process.getInputStream() 没有任何内容可读取,子进程死锁

    我在某些进程包装方面遇到问题 并且该问题仅发生在 Windows XP 中 这段代码在 Windows 7 中完美运行 我真的很困惑为什么 XP 中的流是空的 我也尝试过使用 Process Exec 的 String 版本 但没有什么区别
  • 如何为 PDF 数据指定一个文件名,以便用户在 Swift 中保存

    我将我的 pdfData 交给用户保存 他可以保存到文件并制作文件 但pdf文件的默认名称是 PDF document pdf 如果可能的话 我想要我自己的文件名 也许我可以在将 pdfData 提供给之前更改 pdfData 中的文件名U
  • jquery 代码没有运行

    我想在单击后更改 div1 的颜色 当我点击时div1它必须将其背景颜色更改为 4A6B4C但这并没有发生 请帮忙 谢谢 document ready function div1 click function div1 toggleClas
  • 在 Eclipse 中显示日语字符时出现问题

    我的 Eclipse IDE 显示垃圾字符而不是正确的日语字符 尝试了很多策略 我的编码设置为UTF 8 但仍然没有结果 附上参考截图 任何帮助都会被接受 提前致谢 在您的工作区目录中打开此文件
  • Node js 中的 Values 文件上传器 - 多个文件上传

    我在用着值 ajax 文件上传器 http valums com ajax upload 我的nodejs服务器端如下所示 fileStream fs createWriteStream dirname public images hous