我需要使用Laravel 5.1作為后端將圖像和視頻文件上傳到Angular應(yīng)用程序中的服務(wù)器。所有Ajax請求都需要首先發(fā)送到Laravel控制器,并且我們在這里有代碼說明文件到達那里后如何處理。以前,我們已經(jīng)完成了普通的HTML表單以將文件上傳提交到控制器,但是在這種情況下,我們需要避免刷新表單的頁面,因此我嘗試通過Angular在Ajax中進行此操作。我需要將以前通過HTML表單發(fā)送到控制器的Ajax信息發(fā)送到Laravel控制器嗎?這是Laravel控制器中用于處理文件信息的代碼。這就是我需要弄清楚如何發(fā)送的內(nèi)容,因此希望可以重用以下代碼: $promotion = Promotion::find($id); if (Input::hasFile('img_path')){ $path = public_path().'/images/promotion/'.$id.'/'; $file_path = $path.'promotion.png'; $delete = File::delete($file_path); $file = Input::file('img_path'); $uploadSuccess = $file->move($path, 'promotion.png'); $promotion->img_path = '/images/promotion/'.$id.'/promotion.png'; } if (Input::hasFile('video_path')){ $path = public_path().'/video/promotion/'.$id.'/'; $file_path = $path.'promotion.mp4'; $delete = File::delete($file_path); $file = Input::file('video_path'); $uploadSuccess = $file->move($path, 'promotion.mp4'); $promotion->video_path = '/video/promotion/'.$id.'/promotion.mp4'; }如您在上面看到的,我們會將文件名為promotion.png的任何文件轉(zhuǎn)換為PNG,以便輕松獲取,并且僅接受.mp4視頻格式。因此,我們不必擔(dān)心檢查文件是否存在以及是否可以覆蓋它。因此,您可以在代碼中看到我們在保存之前刪除了該名稱的所有現(xiàn)有文件。HTML只是帶有“文件”類型的輸入:<input type="file" id="img_path" name="img_path" class="promo-img-path" accept="image/*">我們現(xiàn)在正在使用Angular,所以我不能再通過HTML表單發(fā)送以上內(nèi)容。這就是我需要弄清楚如何做的事情。我們是兩個開發(fā)人員,只是盡力而為,因此,我相信有更好的方法可以做到這一點。但是,在重構(gòu)這一切之前,我希望我可以使用Angular(或?qū)Query作為最后的手段)向控制器發(fā)送Laravel為了使上述代碼正常工作所需的任何文件數(shù)據(jù)。答案可能很簡單,例如“將PUT發(fā)送到上面那個控制器中的方法,但是可以使用這種格式的文件信息來代替普通的JSON有效負載,并且可以使用...來收集該信息”。我也希望將來有更多關(guān)于更好的方法的提示。
- 2 回答
- 0 關(guān)注
- 943 瀏覽
添加回答
舉報
0/150
提交
取消