2017-03-02 64 views
1

我正在使用ngf-file-upload模塊通過angularjs和laravel上傳文件。在angularjs和laravel中上傳文件

這是我的HTML initiatior:

<div class="button" ngf-select="profile.uploadFiles($file, $invalidFiles)">Upload on file select</div> 

這是我在角

 vm.uploadFiles = function(file) { 
      if (file) { 
       file.upload = Upload.upload({ 
        url: 'http://localhost/api/uploadImg', 
        data: {file: file} 
       }); 
      } 
     } 

控制器這是在我的Laravel上傳API的代碼。

public function uploadImg() 
{ 
    $data = Input::file('file'); 
    return $data; 
} 

我的角應用程序運行在9000端口和laravel在默認端口。 來自angular的請求觸及laravel中構建的api,但事實是它缺少該文件。儘管我的請求標題在瀏覽器的網絡中看起來很可疑。像內容類型的multipart/form-data的

This is the link of danial farid js fiddle

我使用相同的代碼,以改變我的API同步,也就是在撥弄提及。

奇怪的是,當我給我的本地API路徑到這個小提琴然後它工作正常。但它不在我的項目本地工作。我認爲在我的角度上我缺少一些東西。

This is the image of param that is send when i am trying to upload file from local project

This is the image of param that is send when i am trying to upload file from fiddle to my api

我的結論

,因爲我可以上傳一個HTML文件(不是在我的角度項目)的文件中有代碼沒有問題的是特別是我創建了測試文件上傳,它正在運行。

,當我試圖通過我的項目上載它的失敗。 我重視我的控制檯一個案件的圖像正在一個(通過隨機文件上傳圖像)等爲不工作的情況下(我在哪裏上傳文件通過我的項目)。

我不下一步做什麼。我認爲我的角色項目中有一些東西在我的上傳過程中造成障礙。

+0

變化print_r的添加刪除頭在所有其他請求'$回報和data'檢查您的控制檯查看。網絡選項卡。看看返回的是什麼 – EddyTheDove

+0

它向我展示了同樣的東西。沒什麼。雖然請求很好。 – Dherya

+0

你的意思是「請求很好」。如果你可以訪問請求,然後使用請求來獲取文件,如$ request-> file('file');' – EddyTheDove

回答

0

攔截

是的,因爲我們在攔截

設置頭和默認標頭,我們在攔截

config.headers['Content-Type'] = 'application/x-www-form-urlencoded'; 

爲每個請求都設置他們創造了文件上傳問題從我們的角度應用程序製作的內容正在通過攔截器,攔截器正在使用這些標題修改每個請求。所以我必須從攔截器中刪除這個頭。

注意

不要忘記