VUE文件: <template> <!-- 提交圖片 --> <view class="cu-card article"> <view class="cu-item shadow" style="background-color: transparent;"> <u-upload ref="uUpload" :action="action" :auto-upload="false" name="images" :size-type="sizeType"></u-upload> <u-button @click="submit">提交</u-button> </view> </view> </template>
后端接口文件 class OrderSubmit(APIView): def post(self, request): # 訂單圖片對象 file_obj = request.FILES.getlist('images', None) function = "submit_order" # 上傳圖片 輪子寫在下面 status, path = upload_files.UploadFilesOnce(request.user, function, file_obj) if status == False: message["code"] = 10041 message["message"] = "圖片上傳失敗" return JsonResponse(message)
# 單個 上傳輪子文件 def UploadFilesOnce(username,function,files): try: # 上傳圖片路徑 media/username/task_id/images.jpg dir_path = BASE_DIR + "/media/{}/{}/".format(function,username) # 如果沒有這個路徑就創建 if not os.path.exists(dir_path): os.makedirs(dir_path) path='' # 上傳圖片 for f in files: # 為了避免覆蓋 對名字進行加密 image_name = datamd5.md5(f.name) + '.jpg' with open(dir_path + image_name, 'wb') as dest: # 獲取路徑 path = path + '/media/{}/{}/'.format(function,username) + image_name + "," for chunk in f.chunks(): dest.write(chunk) return True,path except: # print(traceback.format_exc()) return False,None