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

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

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

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

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

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()是不会阻塞的,如果没数据会返回 ''。因此上面的处理就会造成,读出一行后,再循环时,程序可能已经结束了,后面的数据就读不出来了。后来改为:

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(),这样保证先把能读的数据全部读出来。这样就没有问题了。

你可能感兴趣的:(wshell修改了upload功能,増加显示图片功能)