import os
c = os.path.join(a,b)
a,b编码格式不同的时候,不能拼接,拼接的结果是a,b,c全部失效。
html中拿到的键值属性编码格式为unicode格式,
python中设定的字符串格式为utf-8格式
举个栗子:
uploadPic.html代码段
<form action="/uploadHandle" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="pic1">
<br>
<input type="submit" value="上传">
</form>
后台处理代码段
def uploadHandle(request):
pic1 = request.FILES['pic1']
#下面的语句就会出现上述的错误,但不会报错,就是一拼接返回值就为空
#编码问题一定要注意
picName = os.path.join(settings.MEDIA_ROOT,pic1.name.encode('utf-8'))
return HttpResponse(picName)