在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  HTML/ Django如何在內(nèi)存里處理ajax傳遞進來的Excel文件?

Django如何在內(nèi)存里處理ajax傳遞進來的Excel文件?

希望通過ajax從頁面上傳一些字段和一個excel文件進行處理

前端部分是這樣寫的

<form method="post">
    {% csrf_token %}
    <input class='a' type="text">
    <input class="up-files" type="file">
    <button class="up-btn">提交</button>
</form>

#js 部分
<script>
$('.wage-add-btn').click(function () {
         $.ajaxSetup({
     data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
    });
         if(confirm("請仔細檢查表格確認上傳")) {
             var a = $('.a').val();
             var files = $('.up-files').val();
             $.ajax({
                type:"POST",
                data: {a:a, files:files},
                url: "{% url 'add' %}",
                cache: false,
                dataType: "html",
                success: function(){
                    alert('成功')
                },
                error: function(){
                    alert('失敗')
                }
            });
            return false;
         }
    });

</script>


views.py:

def add(request):

if request.method == 'POST':
    if request.is_ajax():
        a = request.POST.get('a')
        files = request.POST.get('files')
        data = xlrd.open_workbook(files)
return render(request, 'index.html', locals())

這里報錯:
IOError: [Errno 2] No such file or directory: u'C:\fakepath\u5956u54c1u53d1u653eu767bu8bb0u886835.xls'

請問是哪里操作不對嗎?是否有完整的實現(xiàn)可以借鑒?

回答
編輯回答
落殤

前端的ajax寫的不對,file的上傳要借助formData,


<form method="post">
{% csrf_token %}
<input class='a' type="text">
<input class="up-files" type="file">
<button class="up-btn">提交</button>

</form>

js 部分

<script>
$('.wage-add-btn').click(function () {

     $.ajaxSetup({
 data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
     if(confirm("請仔細檢查表格確認上傳")) {
         // var a = $('.a').val();
         // var files = $('.up-files').val();
         var form = new FormData();
         form.append("file", files);
         form.append("a", a);
         $.ajax({
            type:"POST",
            data: form,
            url: "{% url 'add' %}",
            cache: false,
            dataType: "html",
            success: function(){
                alert('成功')
            },
            error: function(){
                alert('失敗')
            }
        });
        return false;
     }
});

</script>

2018年4月18日 00:46
編輯回答
孤客

文件上傳和表單提交建議分開執(zhí)行~
Django文件上傳參考網(wǎng)址

2018年8月8日 23:23
編輯回答
柚稚

文件是通過request.FILE傳輸,不是通過POST

2017年4月7日 16:30