一、前端:uniapp准备文件

uploadImage(){
  let that = this
  uni.chooseImage({
			count:1,
			sizeType:['compressed'],
			sourceType: ['camera','alumb'],
			success(res) {
			let tempImage = res.tempFilePaths[0]			
				// 获取图片便于展示
				uni.getImageInfo({
				src: tempImage,
				success(image) {
				that.photo_src = image.path;
			}
      	});
	}
  })
},

  

 

 

 二、前端:上传文件

 

toDjango(){
                console.log("上传到后台:");
                
                console.log(this.token);
                
                uni.uploadFile({
                    url:$config.base_url+'testUploadPic/',
                        //  header 注释掉
                    method: 'POST',
                    header: {  
                    //     'Content-Type': "multipart/form-data",
                           authorization: 'eyJhbGmp0aSI6ImE3ZWYxNWmUG9UvY1SfOs2KFJsnIZk'
                     },  
                    filePath:this.photo_src,
                    name:'imgs',
                    formData:{'uName': "hello.jpg"},
                    success(res) {
                        console.log('上传成功:',res)
                    }
                })

            }

 三、Django后台接收并保存下来

# 文件接收测试
@csrf_exempt
def submitUploadPic(request):
    img = request.FILES.get('imgs')  # 文件名:img.name
    uName = request.POST.get('uName')
    print(uName)
    print('img:', img)
    if img:
        img_path = os.path.join('media/test/', uName)
        with open(img_path, 'wb') as fi:
            for i in img.chunks():
                fi.write(i)
        ret = {'code': 1, 'msg': uName + "上传成功!"}
    else:
        ret = {'code': 0, 'msg': "没有图片,上传不成功"}
    return JsonResponse(ret,json_dumps_params={'ensure_ascii': False})

 

posted on 2023-01-08 12:01  koolman  阅读(460)  评论(0)    收藏  举报