Python POST错误500,仅适用于Windows 7且文件大于1Mb

时间:2013-01-23 23:32:13

标签: python windows post size

我正在使用Python 2.7将一些数据发布到服务器:虽然这适用于Linux和OS X,但在Windows中它会继续上传超过4分钟 然后放弃“错误500 ”。 但只有文件> 1MB。 在服务器端,由于文件传输损坏而生成错误。 我也试过Python 2.5,在虚拟机和两个不同的本机Windows环境中运行它。 Windows版本是Win7 x64。

  1. 使用文件< 1Mb
  2. 在OS X和Linux(Ubuntu)下使用任何文件大小
  3. 如果我通过网络界面上传相同的文件,或者linux或os / x 它完美地工作,那么问题似乎不是文件本身。
  4. CODE:

    data = {
        'title': title,
        'file': open(filename),
        'filename': filename
    }
    
    datamulti, headers = multipart_encode(data)
    request = urllib2.Request(url, datamulti, headers)
    print(result.read())
    

2 个答案:

答案 0 :(得分:2)

请改为尝试:

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

这将使文件以二进制模式而不是文本模式打开。

答案 1 :(得分: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()