自定义文件的上传

如同我的上一篇博客,在这里上传文件的思路和上传照片的思路是大致一样的,只需要改变几个地方。

在这里涉及到一个问题就是服务器文件的名字是唯一的,我们可以用的uuid来大体实现一个唯一的文件名

def createFileName():
     fileName = str(uuid.uuid4())
     return  fileName

def doimgUpload(request):

    # 获得文件
    uploadFile =  request.FILES.get("img")
    # 文件的写入操作
    # 服务器文件的名字通常唯一的
    # 设置文件名及上传路径
    filePath = os.path.join(settings.MEDIA_ROOT,createFileName()+".jpg" )
    # 以写的方式打开文件
    with open(filePath,mode="wb") as wf:
        # 将文件分成很多份写入
        for i in uploadFile.chunks():
            wf.write(i)
            wf.flush()

    return  HttpResponse("上传成功")

然后我们获取这个文件

def getImg(request):
    # 获取头像
    user = User.objects.filter(u_name="陈哲西").first()
    # user = User()
    # print("------------")
    # print(user.u_img) #数据中的相对路径
    # print(user.u_img.path)  #绝对路径
    # print(user.u_img.url) #相对路径

    imgPath = "/static/upload/" + user.u_img.url
    print(imgPath)
    data = {
        "imgPath":imgPath
    }
    return render(request,"getImg.html",context=data)

前端查看即可

{{ imgPath}}

猜你喜欢

转载自blog.csdn.net/XYLHxylh/article/details/82763526