Хранение картинок в MySQL с помощью Laravel - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь сохранить некоторые загружаемые изображения в свою базу данных, используя laravel. Все идет хорошо, все сохранено, но для файла они хранят бин-файл размером 38B, я попытался прочитать его в .Txt-файлах, и он имеет путь к / Applications / MAMP / tmp / php / phpUzMXbn. Вот мой код функции:

Route::post('/FruitCreate',function(Request $request){
$fruit = new fruit;
$fruit->name = $request->name;
$fruit->price = $request->price;
$fruit->picture = $request->image;
$fruit->save();
return redirect('FruitsChangingPricePanel');

Мой клинок формы:

<form enctype="multipart/form-data" method="POST" action="{{ url('FruitCreate') }}" >
{{ csrf_field() }}
<input type="text" name='name'>
<input type="text" name='price'>
<input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
<input type="file" name='image'>
<button type='submit'> submit </button>

спасибо за вашу помощь !!

Ответы [ 3 ]

0 голосов
/ 03 ноября 2018

потому что вы пытаетесь сохранить напрямую bin. попробуйте это

         $file = Input::file('file');

        $destinationPath = public_path(). '/uploads/';
        $filename = $file->getClientOriginalName();

        $file->move($destinationPath, $filename);

        echo  $filename;
        //echo '<img src="uploads/'. $filename . '"/>';

        $user = ImageTest::create([
            'filename' => $filename,
        ]);
0 голосов
/ 03 ноября 2018

Сначала вы должны получить свое изображение, а затем сохранить его в папке public/uploads/fruits. И после этого вы сохраняете путь к вашей картинке в БД.

$fruit = new fruit;
$fruit->name = $request->name;
$fruit->price = $request->price;

if ($request->has('image')) {
   if (!file_exists(public_path('uploads/fruits/'))) {
       mkdir(public_path('uploads/fruits/'));
   }
   if (!file_exists(public_path('uploads/fruits/' . date('FY') . '/'))) {
       mkdir(public_path('uploads/fruits/' . date('FY') . '/'));
   }
    $image = $request->file('image');
    $filename = public_path('uploads').'/fruits/' . date('FY') . '/' . str_random() . '.' . $image->guessExtension();
    \Image::make($image->getRealPath())->encode('jpg')->resize(220, 220)->put($filename);

    $fruit->picture = $filename;
}

$fruit->save();
0 голосов
/ 03 ноября 2018

Вы можете сделать что-то вроде этого:

$file = $request->file('image'); $imageContent = $file->openFile()->fread($file->getSize()); $fruit = new fruit; $fruit>picture = $imageContent; $fruit>save();

Примечание. Тип столбца: Blob

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...