使用python在ftp服务器上显示上传特定格式的文件

时间:2015-10-02 19:25:28

标签: python flask ftp

我正在开发一个ftp webapp。我创建了一切,直到上传部分,即文件已成功上传到ftpuser的目录。现在,我正在为用户提供选项,以查看按格式上传的文件。示例:如果用户单击浏览图像的图标,则应显示他们已上载的所有图像。

像“Retr”这样的命令开始下载文本和pdf以外的文件但是我想要登记所有文件而不是下载。我不知道如何做到这一点。

我正在使用Flask进行webapp和ftplib进行上传。

1 个答案:

答案 0 :(得分:0)

根据@tdelaney提出的建议。我通过将不同的文件格式上传到ftp用户目录中的不同目录来形成解决方案。因此,当用户点击显示图像时,他在图像文件夹中显示文件的名称。以下代码如下:

if c=='images':
            ftp=FTP('127.0.0.1',userid,passwd)
            if not 'images' in ftp.nlst():
                ftp.mkd('images')
            ftp.cwd('images')

elif c=='documents':
            ftp=FTP('127.0.0.1',userid,passwd)
            if not 'documents' in ftp.nlst():
                ftp.mkd('documents')
            ftp.cwd('documents')

elif c=='audios':
            ftp=FTP('127.0.0.1',userid,passwd)
            if not 'audios' in ftp.nlst():
                ftp.mkd('audios')
            ftp.cwd('audios')

elif c=='videos':
           ftp=FTP('127.0.0.1',userid,passwd)
           if not 'videos' in ftp.nlst():
            ftp.mkd('videos')
           ftp.cwd('videos')
else:
            ftp=FTP('127.0.0.1',userid,passwd)
            if not 'others' in ftp.nlst():
                ftp.mkd('others')
            ftp.cwd('others')
files=ftp.nlst()

并进一步使用ftp.nlst()获取该目录中的文件列表,然后将其传递给模板并通过以下代码打印:

<table>
    <tr>
        {% for file in files %}
            <td>{{file}}</td>
        {% endfor %}
    </tr>
</table>