2017-10-13 30 views
0

,這裏是我的html不能將文件上傳到Laravel使用jQuery。員額法

<input type="file" class="form-control" name="file-name" id="file-id"> 

這裏的是應該將文件發送到API

var file = $('input#file-id').val(); 
$.post('my/url/that/works', { 
    file: file, 
    volume: volume 
}).done(function() { 
    //something 
}).fail(function() { 
    //something else 
}); 

,最後我的方法在Laravel JS:

public function ajaxMethod(Request $request) 
{ 
    if ($request->hasFile('file')) { 
     echo "it does"; 
    }else{ 
     echo "it does not"; //  <- that happens 
    } 
    var_dump($request->getContent());//vardumps ('C:/fakepath/[correct_filename]) 
} 

和ajax調用說它沒有文件。我認爲我只上傳文件名,但不上傳文件。我該如何改變它?

+0

事實上,你不能上傳使用jQuery後功能的文件。 – Jerodev

+0

好的,所以我需要使用.ajax函數? –

+0

在請求中發送文件時,您需要將它們編碼爲二進制數據,而不是將它們串行化。要做到這一點使用'FormData'對象。查看我標記的重複內容以獲得更多信息 –

回答

0

獲取文件USEI這樣的:

var file = $('input#file-id').prop('files')[0]; 

,而不是你的代碼:var file = $('input#file-id').val();

+0

這是一半的答案。更大的問題是缺乏二進制數據。 –

+0

是的,我看到您對$ .post的評論 –