2

Python 2.7 を使用してデータをサーバーに投稿しています。これは Linux と OS X では機能しますが、Windows では 4 分以上アップロードし続け、「エラー 500 」であきらめます。ただし、ファイル > 1Mb の場合のみ。サーバー側では、破損したファイル転送が原因でエラーが生成されます。仮想マシンと 2 つの異なるネイティブ Windows 環境のいずれかで実行するために、Python 2.5 も試しました。Windows 版は Win7 x64 です。

  1. 1Mb未満のファイルで動作
  2. OS X および Linux (Ubuntu)で任意のファイル サイズに対応
  3. Web インターフェイス、Linux、または os/x を介して同じファイルをアップロードすると、問題なく動作するため、問題はファイル自体ではないようです。

コード:

data = {
    'title': title,
    'file': open(filename),
    'filename': filename
}

datamulti, headers = multipart_encode(data)
request = urllib2.Request(url, datamulti, headers)
print(result.read())
4

2 に答える 2

2

代わりにこれを試してください:

data = {
    'title': title,
    'file': open(filename, 'rb'),
    'filename': filename
}

これにより、ファイルがテキスト モードではなくバイナリ モードで開かれるようになります。

于 2013-02-25T12:54:47.093 に答える
1

これは、win32 でテストされた作業バージョンです。

    data = {
    'title': title,
    'file': open(filename, 'rb'),
    'filename': filename
    }

    datamulti, headers = multipart_encode(data)
    request = urllib2.Request(url, datamulti, headers, None, True)
    print urllib2.urlopen(request).read()
于 2013-02-25T12:49:50.653 に答える