-2

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でファイルをリモートの場所にアップロードする方法をGoogleで検索します。しかし、私はそれに対する適切な解決策を見つけることができません。Python コードから scp を実行するように提案されているものもあります。

もっと..

A と B という 2 つのサーバーがあるとします。ファイル アップロード用の私の python-wsgi アプリケーションはサーバー A でホストされています。python-wsgi アプリケーションには、ユーザーがアップロードをクリックしたときにユーザーがファイルを選択するための Web フォームがあり、そのファイルが必要です。サーバーBにアップロードする(既知の場所)

Pythonを使用してリモートの場所にファイルをアップロードする方法またはライブラリを知っている人はいますか?

前もって感謝します。

4

2 に答える 2

3

HTTPの場合、サーバー側に適切な対応物、つまりPython / Perl / PHP / Ruby / HTTP POSTで提供するデータを取得するスクリプトがなければ、サーバーにファイルを置く機会はありません。- それらを要求してファイルに書き込みます。FTP サーバーをセットアップすることをお勧めします。それこそまさに、FTP が発明された目的です。

通常、ほとんどの HTTP サーバーには FTP もあります。HTML ファイルをサーバーにどのように配置しますか? FTP は、そのために必要な最小限のアクセスのようなものです。セットアップは本当に難しくありません。

于 2013-01-21T08:22:21.550 に答える
2

ファイルのアップロードは通常、 enctype=multipart/form-dataを使用して HTTP POST 操作として実装されます。

見る

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

Python では、便宜上requestsモジュールを使用できます。

それはさておき、あなたの質問は貧弱です。

于 2013-01-21T06:54:27.583 に答える