2015-01-17 48 views
1

我正在進行文件上傳,我想要一個插件,可以讓用戶輕鬆更新他們的個人資料圖片或頭像,只需點擊一下。有人推薦blueimp jQueryFileUpload。我有它的設置的一部分(一個鏈接,點擊後,打開一個文件選擇器對話框),但我在接收文件數據時遇到問題。提琴手顯示文件數據發佈到我想要的網址,但我似乎無法找到我選擇的文件的數據存儲在哪裏。使用jQueryFileUpload發送的文件數據在哪裏?

print_r($_POST); 

只顯示一個參數。

我的javascript如下:

$(".hoverAction").on('click', function(e) { 
      $(".fileInput:first").fileupload({ 
       url: "/user/update", 
       singleFileUploads: true, 
       formData: { 
        type: "avatar" 
       }, 
       add: function(e, data) { 
        var goUpload = true; 
        var uploadFile = data.files[0]; 
        if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) { 
         common.notifyError('You must select an image file only'); 
         goUpload = false; 
        } 
        if (uploadFile.size > 2000000) { // 2mb 
         common.notifyError('Please upload a smaller image, max size is 2 MB'); 
         goUpload = false; 
        } 
        if (goUpload == true) { 
         data.submit(); 
        } 
       } 
      }); 

      $(".fileInput:first").click(); 

我的POST處理程序如下:

function updateAction() { 
     $type = $_POST['type']; 
     switch($type) { 
      case "avatar": 
       print_r($_POST); // returns only the type param 
       break; 
      case "cover": 
       break; 
      default: 
     } 
    } 
+2

文件上傳位於'$ _FILES'中,而不是'$ _POST'。 – Barmar

+0

@Barmar這是朝着正確方向邁出的一步,但在Fiddler中,我可以看到實際的文件數據。存儲在哪裏? – Laplace

+1

它存儲在服務器上的臨時文件中,'$ _FILES'包含臨時文件的名稱。就像如果你做了一個普通的上傳表單而不是AJAX。 – Barmar

回答