2

我正在使用 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. 如果我通过 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 回答