ajax發送文件


### ajax發送文件

```python
"""
ajax發送文件需要借助於js內置對象FormData

"""
<script>
    // 點擊按鈕朝后端發送普通鍵值對和文件數據
    $('#d4').on('click',function () {
        // 1 需要先利用FormData內置對象
        let formDateObj = new FormData();
        // 2 添加普通的鍵值對
        formDateObj.append('username',$('#d1').val());
        formDateObj.append('password',$('#d2').val());
        // 3 添加文件對象
        formDateObj.append('myfile',$('#d3')[0].files[0])
        // 4 將對象基於ajax發送給后端
        $.ajax({
            url:'',
            type:'post',
            data:formDateObj,  // 直接將對象放在data后面即可

            // ajax發送文件必須要指定的兩個參數
            contentType:false,  // 不需使用任何編碼 django后端能夠自動識別formdata對象
            processData:false,  // 告訴你的瀏覽器不要對你的數據進行任何處理

            success:function (args) {
            }
        })


    })
</script>

def ab_file(request):
    if request.is_ajax():
        if request.method == 'POST':
            print(request.POST)
            print(request.FILES)
    return render(request,'ab_file.html')
  
"""
總結:
	1.需要利用內置對象FormData
				// 2 添加普通的鍵值對
        formDateObj.append('username',$('#d1').val());
        formDateObj.append('password',$('#d2').val());
        // 3 添加文件對象
        formDateObj.append('myfile',$('#d3')[0].files[0])
	2.需要指定兩個關鍵性的參數
				contentType:false,  // 不需使用任何編碼 django后端能夠自動識別formdata對象
        processData:false,  // 告訴你的瀏覽器不要對你的數據進行任何處理
	3.django后端能夠直接識別到formdata對象並且能夠將內部的普通鍵值自動解析並封裝到request.POST中 文件數據自動解析並封裝到request.FILES中
"""

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM