【问题标题】:laravel catch image in controllerlaravel 在控制器中捕获图像
【发布时间】:2014-06-26 22:27:12
【问题描述】:

这是我的html代码

{{Form::open(array('route'=>'admins.changePicture', 'class' => 'mainInformationContrainer', 'method'=> 'POST', 'file' => true)) }}
<ul>
    <li>
        <label>Picture</label>
        <div class="oneInfo thumbnail">
            <img src="#" id="imageID">
        </div>
    </li>
    <li>
        <label>.</label>
        <div class="oneInfo" style="width: 200px; overflow: hidden">
            <span class="spanForFileInput">

                <input type="button" class="selectImage" value="Select Image" />
                <input type="file" value="Select Image" id="imgInp"/>
            </span>
            <input type="submit"  />
        </div>
    </li>
    <li>
        <label></label>
        <div class="oneInfo">

        </div>
    </li>
</ul>
{{ Form::close() }}

在我的控制器中我这样做

public function changePicture(){
    $image = Input::file('imageID');echo $image; exit;
}

我得到一个空结果

我的问题是如何在控制器中捕获图像以及如何将其保存到我的 sql 数据库中?我的专栏来自longblob

【问题讨论】:

    标签: php laravel laravel-4 blade


    【解决方案1】:

    你得到一个空的结果,因为你有这个:

    <input type="file" value="Select Image" id="imgInp"/>
    

    没有名称,只有id,因此您需要在输入中添加name,如下所示:

    <input type="file" value="Select Image" id="imgInp" name="imgInp" />
    

    现在你可以使用这个了:

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

    将数据保存到数据库中:

    $image = base64_encode(file_get_contents(Input::file('imgInp')->getRealPath()));
    

    现在在您的数据库字段中插入 $image 并在您的视图中显示它,只需使用:

    // Assumed the field in the database is imageField
    $imgdata = base64_decode($model->imageField);
    $f = finfo_open();
    $ext = finfo_buffer($f, $model->imageField, FILEINFO_MIME_TYPE);
    echo '<img src="data:image/' . $ext . ';base64,' . $model->imageField . '" />';
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2015-10-14
    • 2018-09-25
    • 2019-11-09
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多