我写了这段代码:
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'编解码器无法解码位置15的字节0xff:无效的起始字节
错误似乎到达f.write(x ['upfile']。value),我不能为我的生活找出原因。出了什么问题?我知道该值在该变量中,因为如果我只是返回它,则图像显示在我的浏览器中。
答案 0 :(得分:1)
我可以看到代码的第一件事是文件没有以二进制模式打开。在读写非简单字符串的文件时,需要二进制模式将数据视为字节。只需将文件打开方式切换到f = open(filename, 'wb')
即可解决该问题。