1. 程式人生 > >自定義檔案的上傳

自定義檔案的上傳

如同我的上一篇部落格,在這裡上傳檔案的思路和上傳照片的思路是大致一樣的,只需要改變幾個地方。

在這裡涉及到一個問題就是伺服器檔案的名字是唯一的,我們可以用的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}}