file_in = web.input(fh={})
filedir = 'upload'if 'fh' in file_in:
filename = file_in.fh.filename.decode('utf-8')
fout = open(filedir +'/'+ filename,'wb')
fout.write(file_in.fh.file.read())
fout.close()
return "上傳成功!"
2 回答

BIG陽
TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊
如果你是通過網(wǎng)頁上傳的,要保證 <meta charset="UTF-8" /> 也是 utf-8 編碼的,py 文件也用相同的編碼保存。
我運行了你的代碼,沒有發(fā)現(xiàn)亂碼。不知道你指的亂碼是哪一種:
如果是方塊的話就需要給服務(wù)器安裝中文支持
如果是雜亂的亂碼,可能需要設(shè)置服務(wù)器的 locale

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊
中文文件上傳后會出現(xiàn)亂碼情況,是因為中文編碼默認(rèn)為GBK,而Python中默認(rèn)字符編碼為unicode,需要把文件名的字符轉(zhuǎn)一下, filename = filename.encode("gb2312"),加上這一句,就OK了
添加回答
舉報
0/150
提交
取消