php
  • jquery
  • ajax
  • symfony
  • 2015-07-01 114 views 6 likes 
    6

    我已經從ajax上傳文件到Symfony2控制器的問題。用ajax和Symfony2上傳文件

    這是我的形式由客戶端:

    var uploadFile = function() { 
    var content = "<form id='uploadFile' enctype='multipart/form-data' action='' method='post'>" + 
         "<input id='file' type='file'/>" + 
         "</form>"; 
    $("#upload-dialog").html(content); 
    $("#upload-dialog").dialog({ 
        resizable: false, 
        title: 'Dodaj załączniki do umowy', 
        height: 300, 
        width: 450, 
        buttons: [ 
         { 
          text: 'Wyślij', 
          click: function() { 
           var formData = new FormData(); 
           formData.append('file', document.getElementById('file').files[0]); 
           $.ajax({ 
            url: Routing.generate('employees_upload_attachment'), 
            data: formData, 
            enctype: 'multipart/form-data', 
            processData: false, 
            contentType: false, 
            success: function() { 
            }, 
            error: function() { 
    
            } 
           }); 
          } 
         } 
        ] 
    }); 
    

    };

    ,這是我的控制器

    public function uploadAttachmentAction(Request $request) { 
        $fileBag = $request->files; 
        var_dump($fileBag); 
    } 
    

    當我試圖表明上傳的文件我得到一個空FileBag對象:

    對象(Symfony的\分量\ HttpFoundation \ FileBag)第12(1 ){
    [ 「參數」:保護] =>數組(0){}}

    什麼可能是錯誤?

    編輯: 我解決它。我加入jQuery的AJAX參數

    緩存:假的,類型: 'POST'

    ,一切都ok了:)

    +0

    您是否嘗試過記錄'document.getElementById('file')。文件[0]'的值? – colinD

    +0

    是的,它看起來不錯。 – math

    +0

    我解決了這個問題。我添加到ajax參數:cache:false並鍵入:'POST'。現在一切正常:) – math

    回答

    0

    添加AJAX參數:

    cache: false, 
    type: 'POST' 
    

    解決的問題。

    注意:答案是基於評論而不是我的,因爲它顯示在「未答覆」部分。

    相關問題