python下载上传 2015

#python笔记

  • diango 服务器端下载 网页端进行适配
def download(request,md5,filename):
    the_file_name = os.path.join(urls.getPath(),md5,filename)
    def file_iterator(file_name, chunk_size=2048):
        with open(file_name,"rb") as f:
            while True:
                c = f.read(chunk_size)
                if c:
                    yield c
                else:
                    break
 
    response = StreamingHttpResponse(file_iterator(the_file_name))
    response['Content-Type'] = 'application/octet-stream'
    response['Content-Length'] = os.path.getsize(the_file_name)
    response['Content-Disposition'] = 'attachment;filename="{0}"'.format(filename)
    return response
  • diango 服务器端上传
def upload(request):
    md5 = request.POST['md5']
    path = os.path.join(urls.getPath(), md5)
    if os.path.exists(path):
        pass
    else:
        result = {"result":False, "message":'申请的ID不存在'}
        return HttpResponse(json.dumps(result), content_type="text/html")
    try:
        file = request.FILES['file']
    except Exception:
        result =  {"result":False, "message":"上传文件为空!"}
        return HttpResponse(json.dumps(result), content_type="text/html")
    osType = platform.system()
    try:
        if osType == "Linux":
            path = os.path.join(path, file.name.decode('gbk').encode('utf-8'))
        else:
            path = os.path.join(path,file.name)
    except Exception:
        result =  {"result":False, "message":"文件名请不要用中文,或者使用IE上传中文名的文件!"}
        return HttpResponse(json.dumps(result), content_type="text/html")
    handle_uploaded_file(path,file)
    result = {"result":True, "message":"上传成功!"}
    return HttpResponse(json.dumps(result), content_type="text/html")

猜你喜欢

转载自www.cnblogs.com/my-flash/p/12380289.html