wshell修改了upload功能,増加显示图片功能

wshell本来是使用dropzone来处理文件上传,它只支持IE10+浏览器。所以在ie9下没法使用,同时它还会有一个提示,并显示一个缺省的文件上传描述及上传按钮。的确不方便。今天把它去掉了,改成了jquery file upload插件。所以你能够这样操做:html

  1. 登陆进入wshell
  2. 输入 upload,在界面上会显示一个上传的按钮,点击它就能够上传。同时若是浏览器支持html5 file api的话,还能够拖拽上传。在上传时,若是支持,还能够显示进度百分比(原本想实现一个进度条,后来一想,仍是百分比简单些:)。上传时文件会放在当前路径下。

wshell还新増了一个show命令能够用来显示当前目录下的图片。它能够带参数或不带,带参数可使用通配符,不带时就是全部图片。html5

还修正了使用subprocess.Popen时返回信息不完整的一个bug。原来的逻辑大致上是:jquery

while self.process.poll() is None:
    line = self.process.stdout.readline()
    if line:
        self.process.timestamp = now()
        self.output('data', self.server.safe_encode(line.rstrip()))

可是发现,有时输出少东西。后面发现,由于使用了gevent.subprocess,因此stdout.readline()是不会阻塞的,若是没数据会返回 ''。所以上面的处理就会形成,读出一行后,再循环时,程序可能已经结束了,后面的数据就读不出来了。后来改成:git

while self.process.poll() is None:
    while 1:
        line = self.process.stdout.readline()
        if line:
            self.process.timestamp = now()
            self.output('data', self.server.safe_encode(line.rstrip()))
        else:
            break

即循环读取readline(),这样保证先把能读的数据所有读出来。这样就没有问题了。github

相关文章
相关标签/搜索