Загрузка файла в Laravel с проверкой дает проблемы и сбои с белым экраном и без ошибок - PullRequest
0 голосов
/ 18 января 2020

Я пытался следовать некоторым инструкциям по загрузке файлов с Laravel PHP, но столкнулся с препятствием. В настоящее время мой контроллер, показанный ниже, компилируется без ошибок, но переносит меня на белую страницу, и мои загрузки файлов не отображаются в моем хранилище. Я получил загрузку изображений для работы, но я хочу, чтобы это была возможность загрузки изображений, аудио или видео, которую я не смог заставить работать. Я борюсь за то, как отладить этот код, чтобы увидеть, где он может пойти не так. Это из-за моего оператора return внутри оператора if? Любитель здесь и будет признателен за любую помощь здесь.

Спасибо

См. Ниже мои ссылки ресурсов и контроллера.

https://appdividend.com/2018/08/15/laravel-file-upload-example

Доза изображения не перемещается в пути к папке

https://www.webslesson.info/2018/02/image-file-upload-in-laravel-with-validation.html

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class UploadfileController extends Controller
{
  function index()
  {
   return view('upload');
  }

function upload(Request $request)
{

 if( $request->hasFile('file') ) {

    $file = $request->file('file');
    $imagemimes = ['image/jpeg,png']; //Add more mimes that you want to support
    $videomimes = ['video/mp4,mpeg,ogg,mp4,webm,3gp,mov,flv,avi,wmv,ts']; //Add more mimes that you want to support
    $audiomimes = ['audio/mpeg,mpga,mp3,wav,aac']; //Add more mimes that you want to support

    //Validate images
    if(in_array($file->getMimeType() ,$imagemimes)) {
            $filevalidate = 'required|mimes:jpeg,png|max:2048';
    }
    //Validate video
    if (in_array($file->getMimeType() ,$videomimes)) {
            $filevalidate = 'required|file|mimes:mpeg,ogg,mp4,webm,3gp,mov,flv,avi,wmv,ts|max:4000040';
    }
    //validate audio
    if (in_array($file->getMimeType() ,$audiomimes)) {
            $filevalidate = 'required|file|mimes:audio/mpeg,mpga,mp3,wav,aac|max:90048';
    }

 $original = $file->getClientOriginalName();
 // get filename with extension like demo.php
 $filename = pathinfo($original)['basename'];
 // get public path to images folder
 $path = public_path('files');
 // concat public path with filename
 $filePath = $path.'/'.$filename;
 // store uploaded file to path
 $store = Storage::put($filePath, File::get($file));

 return back()->with('success', 'Media Uploaded Successfully')->with('path', $store);

}
}
}

1 Ответ

0 голосов
/ 19 января 2020

Поле, которое вы отправляете через интерфейс, называется «файл», верно? Просто проверяю.

Сначала я подумал, что ваша программа может не включить это в выражение if, которое объясняет белый экран. Во-первых, я бы порекомендовал вам return var_dump($request->hasFile('file')); Посмотрим, вернет ли это значение true или false.

Затем, возможно, попробуйте return [$request->file('file')]; и посмотрите, что там написано ... И тогда мы go оттуда , Я не эксперт, но думаю, что смогу немного помочь =)

...