我写了下面的代码:
class uploadfromfile:
def POST(self, name=None):
filename = ''.join(random.choice('abcdefghijklmnopqrstuvwxyz') for i in range(20))
x = web.input(upfile={})
f = open(filename, 'w')
f.write(x['upfile'].value)
f.close()
imgFromFile(filename)
return "some html"
但是它不起作用。我得到一个巨大的错误,以这个结束:UnicodeDecodeError: 'utf8'编解码器无法解码字节0xff在位置15:无效的开始字节
错误似乎到达f.write(x['upfile'].value),我不能为我的生活弄清楚为什么。你知道哪里出了问题吗?我知道这个值在这个变量中,因为如果我返回它,图像就会显示在浏览器中。
我看到的第一个错误是该文件没有以二进制模式打开。当读写不是简单字符串的文件时,需要二进制模式来将数据视为字节。只需将文件打开方式切换为f = open(filename, 'wb')
即可解决该问题。