Django 파일을 업로드하는 세 가지 방법

4617 단어 Django
방법 1:
form 폼을 통해 백엔드로 제출
앞부분:



    
    Title


    
                        {% csrf_token %}    

Django 백엔드:
class Upload(View):

    def get(self, request):
        return render(request, 'clashphone/test.html',  {
            'mould': os.path.join(BASE_DIR, 'media', 'commen'),
            'MEDIA_URL': MEDIA_URL}
                      )

    def post(self, request):
        obj = request.FILES.get('fafafa', '1')
        print(obj.name)
        f = open(os.path.join(BASE_DIR, 'media', 'image', obj.name), 'wb')
        for chunk in obj.chunks():
            f.write(chunk)
        f.close()
        # return render(request, 'clashphone/test.html')
        return HttpResponse('OK')

방법 2:
aax를 통해 제출
앞부분
               

 
JS:


    function FileUpload() {
            var form_data = new FormData();
            var file_info =$( '#file_upload')[0].files[0];
            form_data.append('file',file_info);
            //if(file_info==undefined)            
                //alert('         ');
                //return false
            $.ajax({
                url:'/upload_ajax/',
                type:'POST',
                data: form_data,
                processData: false,  // tell jquery not to process the data
                contentType: false, // tell jquery not to set contentType
                success: function(callback) {

                    console.log('ok')
                }
            });

            }

Django 백엔드:
def upload_ajax(request):
    if request.method == 'POST':
        file_obj = request.FILES.get('file')
        import os
        f = open(os.path.join(BASE_DIR, 'static', 'pic', file_obj.name), 'wb')
        print(file_obj,type(file_obj))
        for chunk in file_obj.chunks():
            f.write(chunk)
        f.close()
        print('11111')
        return HttpResponse('OK')

참고:
프론트 데스크에서 aax 요청을 보낼 때:
processData: false,//tell jquery not to process the data contentType: false,//tell jquery not to set contentType 필수 설정
방법 3: iframe 탭을 통해 앞 부분을 제출합니다.
 
  
       
                                                       
       

좋은 웹페이지 즐겨찾기