質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Laravel 5

    1889questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

  • Heroku

    871questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

  • Laravel

    666questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

(laravel5.5) Herokuで画像がDBに登録されない + 指定フォルダに画像が保存されない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 179

kazoogon

score 214

今していること

laravel5.5でアプリを作成、Herokuにdeploy

問題点

「画像保存時DBに登録されない(名前のみ)」 + 「指定フォルダに画像データが保存されない」
ローカルでは二つともうまくいっています

<コード>

//bladeページ
{!! Form::open(
    array(
        'url' => 'admin/upload',
        'class' => 'form',
        'novalidate' => 'novalidate',
        'files' => true)) !!}
    {{ Form::hidden('teacher_id', Auth::user()->id) }}
    {!! Form::label('Image') !!}
    {!! Form::file('photo', null) !!}
    <span class="glyphicon glyphicon-triangle-bottom"></span>
    {{--{!! Html::decode(Form::submit('Upload Image!',array('class'=>'btn btn-primary btn-block','<span class="glyphicon glyphicon-cloud-upload"></span>'))) !!}--}}
    {{ Form::button(
        '<span class="glyphicon glyphicon-cloud-upload"></span>&nbsp;Upload',
        array(
            'class'=>'btn btn-primary btn-block',
            'type'=>'submit'))
    }}
{!! Form::close() !!}
public function index(Request $request)
{Log::debug(json_encode($request));//このようにlogをしこんだが中身はherokuの場合空
    if(Input::hasFile('photo')) {
        $file = Input::all();

        $fileName = uniqid();

        $image = Image::make($file['photo']->getRealPath());

        $image->save(public_path() . '/images/teachers/'. $fileName);

        return TeacherImage::create([//ここではわかりやすいように画像データをreturnしていますが、空です
            'name' => $fileName,
            'profile' => 1,
            'teacher_id' => Auth::user()->id,
        ]);
    }
}

エラーが出るわけでもない、ただrequestが空なだけで何をどう調査したらよいか困っております、よろしくお願いします。

回答を受けての追記

こちらがbladeファイルのソースです

<form method="POST" action="https://(herokuの名前).herokuapp.com/admin/upload" accept-charset="UTF-8" class="form" novalidate="novalidate" enctype="multipart/form-data"><input name="_token" type="hidden" value="V09ZnlJyVvXWBroo2ia93qjuQi8LD9qMS3RWU4Vi">
    <input name="teacher_id" type="hidden" value="2">
    <label for="Image">Image</label>
    <input name="photo" type="file">
    <span class="glyphicon glyphicon-triangle-bottom"></span>

    <button class="btn btn-primary btn-block" type="submit"><span class="glyphicon glyphicon-cloud-upload"></span>&nbsp;Upload</button>
</form>

追記②

heroku logsにて画像をuploadしたときのlogを確認

//heroku logsにて確認
2018-06-29T08:14:58.752475+00:00 heroku[router]: 
    at=info 
    method=POST 
    path="/admin/upload" 
    host=(herokuアプリの名前).herokuapp.com 
    request_id=53ea4706-971a-4b20-b9fa-274cb54c67cd 
    fwd="31.182.239.251" 
    dyno=web.1 connect=0ms 
    service=6675ms status=200 
    bytes=927 
    protocol=https

//下記はlaravel側に仕込んだLog::debug($request)の内容    
2018-06-29T08:14:58.749461+00:00 app[web.1]: [29-Jun-2018 08:14:58 UTC] [2018-06-29 08:14:58] production.DEBUG: 
{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}} [] []
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • mts10806

    2018/06/27 09:40

    実際にブラウザに表示したときのhtmlソースも提示いただけますか?

    キャンセル

  • kazoogon

    2018/06/27 16:42

    回答ありがとうございます。 本文「回答を受けての追記」に追記いたしました、よろしくお願いします。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Laravel 5

    1889questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

  • Heroku

    871questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

  • Laravel

    666questions

    LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。