Как я могу сохранить мое изображение как базу 64 в базу данных - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь сохранить изображение из формы в базу данных. Я пробовал это, но это не работает:

public function store(Request $request)
{
    $article = new article;
    $photo_articles = new photo_articles;
    // $type = new type;

    $article->NOM_ARTICLE = $request->NOM_ARTICLE;
    $article->DESCRIPTION_ARTICLE = $request->DESCRIPTION_ARTICLE;
    $article->id = auth()->user()->id;
    $article->TYPE_ARTICLE = $request->LABEL_TYPE;
    $article->save();

    $photo_articles->PHOTO_ARTICLE = base64_encode(file_get_contents($request->PHOTO_ARTICLE));
    $photo_articles->ID_ARTICLE = $article->ID_ARTICLE;

    $photo_articles->save();

    return;
}

Вот моя форма:

<form method="post" action="{{ route('addarticle.store') }}" class="contact_form text-center" id="contact_form">
    {{ csrf_field() }}
    <div class="row">
        <div class="col-lg-6">
            <div class="col-lg-12">
                <input type="text" class="contact_input" name="NOM_ARTICLE" placeholder="Nom d'article"
                       required="required">
            </div>

            <div class="col-lg-12">
                <select class="contact_input" name="LABEL_TYPE">
                    @foreach($types as $type)
                        <option> {{$type->LABEL_TYPE}}</option>
                    @endforeach
                </select>
            </div>
        </div>
        <div class="col-lg-6">
            <div id="uploading" class="uploadfile">
                <input type="hidden" name="MAX_FILE_SIZE" value="250000"/>
                <input type="file" class="contact_input uploadFileInput" id="imagearticle" name="PHOTO_ARTICLE"
                       placeholder="Capture de votre article" name="fic" size=50 required="required"/>
                <p id="uploadtextid" class="uploadText">upload image</p>
                <img class="uploadImage" src="" id="displayedimage">
            </div>
        </div>

        <div class="col-lg-12">
            <textarea class="contact_textarea contact_input" name="DESCRIPTION_ARTICLE" placeholder="Description"
                      required="required"></textarea>
        </div>

        <button class="contact_button right" type="submit">Valider!</button>
    </div>
</form>

Мое изображение в $request->PHOTO_ARTICLE.

Может кто-нибудь показать мне, как сохранить его как base64? Я много искал, но безрезультатно.

1 Ответ

0 голосов
/ 08 апреля 2019

Когда вы отправляете файл с формой, вы должны установить добавление атрибута
enctype="multipart/form-data" к открывающему тегу формы:

<form enctype="multipart/form-data" method="post" action="{{ route('addarticle.store') }}" class="contact_form text-center" id="contact_form">

, в противном случае он будет отправлять только имяфайл, а не сам файл.

Тогда на вашем пути вам просто понадобится:

$photo_articles->PHOTO_ARTICLE = base64_encode(
    file_get_contents($request->file('PHOTO_ARTICLE')->path())
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...