【问题标题】:How to upload a file to a remote server using python [closed]如何使用python将文件上传到远程服务器[关闭]
【发布时间】:2013-01-21 06:39:50
【问题描述】:

我需要使用 python - wsgi 将文件上传到远程位置。 远程位置不是指托管 python 应用程序的服务器,而是不同的服务器。

我尝试将文件上传到正是应用程序托管的服务器。并且成功了。

使用以下代码,

            post = cgi.FieldStorage(fp=environ['wsgi.input'],environ=environ,keep_blank_values=True)
        self.msg = str(post)            

        try:
            fileitem = post['Filedata']
            if fileitem.file:
                filename = fileitem.filename.decode('utf8').replace('\\','/').split('/')[-1].strip()
                if not filename:
                    raise Exception('No valid filename specified')
                file_path = os.path.join(self.uploadpath, filename)
                # Using with makes Python automatically close the file for you
                counter = 0
                with open(file_path, 'wb') as output_file:
                    while 1:
                        data = fileitem.file.read(1024)
                        # End of file
                        if not data:
                            break
                        output_file.write(data)
                        counter += 1
                        if counter == 100:
                            counter = 0
            self.msg = "Uploaded Successfully !!!! "
        except:
            pass

但这是针对 python 应用程序托管的本地位置。 我搜索谷歌如何在 python 中将文件上传到远程位置。 但我找不到合适的解决方案。有些建议从 python 代码做 scp。

更多..

假设有两台服务器,分别称为 A 和 B。我用于文件上传的 python-wsgi 应用程序托管在服务器 A 上。在 python-wsgi 应用程序中,当用户单击上传时,有一个 Web 表单供用户选择文件然后该文件需要上传到服务器 B(已知位置)

有人知道使用 python 将文件上传到远程位置的方法或库吗?

提前致谢。

【问题讨论】:

  • 我需要一匹小马。提前致谢。
  • 你在问什么?我需要使用 python 将文件上传到远程位置。
  • SO 用于回答具体问题;你没有问任何问题,只是说你需要做点什么。我不会为你写你的代码。如果您进行了尝试但没有成功,那么我们一定可以帮助您。
  • 它是什么样的服务器? HTTP? FTP?你那里有root权限吗?您可以安装所需的服务/服务器/其他吗?你想在那里放另一个 Python 脚本吗?
  • 它和 HTTP 服务器。是的,有root权限。不,我不想放另一个 python 脚本,还有一种方法可以不向目标服务器安装任何服务。谢谢。

标签: python wsgi


【解决方案1】:

对于 HTTP,如果没有适当的服务器端对应物,即 Python / Perl / PHP / Ruby / 任何接收您提供的数据的脚本,您将没有机会将文件放在服务器上HTTP POST - 请求并将它们写入文件。我建议设置一个 FTP 服务器。这正是 FTP 的发明目的。

通常,大多数 HTTP 服务器也有 FTP。你如何把你的 HTML 文件放在服务器上? FTP 是执行此操作所需的一种最小访问权限。设置起来真的不难。

【讨论】:

  • 谢谢。我认为这将解决我的问题。我在 python 中找到了用于 FTP 的 ftplib。
  • 这正是要走的路。祝你好运。
【解决方案2】:

文件上传通常使用 enctype=multipart/form-data 实现为 HTTP POST 操作。

http://www.w3schools.com/tags/att_form_enctype.asp

在 Python 中,为方便起见,您可以使用 requests 模块。

除此之外:你的问题很糟糕。

【讨论】:

  • 非常感谢您的回复。但我需要上传到远程位置,而不是上传到托管应用程序的服务器。
  • 如果没有进一步的反馈,您所问的内容是零意义的。花点时间问一些对我们有意义的事情(或者顺其自然)。
  • 假设有两台服务器分别称为 A 和 B。我用于文件上传的 python 应用程序托管在服务器 A 上。在 python-wsgi 应用程序中,有一个 web 表单可以在用户选择文件时由用户选择点击上传,然后该文件需要上传到服务器 B(已知位置)。
  • 你基本上不知道你在问什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 2015-03-09
相关资源
最近更新 更多