Confluence 에 심각한 보안 취약점이 발견되었으니 사용자분들은 업그레이드 하세요.!
 
1
0
-1

라라벨 시작한지 얼마안된 초보입니다. 기초적인 질문이라도 너그럽게 이해해주셨으면 좋겟습니다 ㅜ

현재 해당 DB의 이미지 경로가 /image/upload/xxxx.jpg 이런식의 형식으로 DB에 저장이 되고 있는데

이러한 경로를 절대경로로 설정을 하여 www.xxxx.co.kr/image/upload/xxxx.jpg 이렇게 설정을 하려고하는데

어디에서 설정을 해야하는지 모르겠습니다..ㅜㅜ

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      DB 이미지 경로를 트랜택션 하실때 env('APP_URL') 을 앞에 추가 하시면 될것 같습니다.


      ex) config('app.url') . $url

      1. Suyong

        기본적으로 폴더들이 너무 난잡하게 되어있어서 controller 부분에서 디비에 들어가게될 이미지 경로를 선언해주는 부분 자체를 못찾겠네요 ㅜ

      2. 김민근

        DB 트랜잭션 하는 method 를 마크다운 형식 소스를 포함 하셔서 댓글에 올려주세요

      3. Suyong
        public function store(RoomCreate $request)
            {
                DB::beginTransaction();
                $text = $request->user()->rooms()->create([]);
                $text->basic()->create($request->input('basic'));
                $text->location()->create([]);
                $text->amenity()->sync([]);
                $text->calendar()->create(['min_night'=>20,'max_night'=>90]);
                DB::commit();
        	}

        트랜잭션 하는 부분은 제가 생각하기에는 이부분인것 같습니다만...이미지 경로를 설정해주는 부분이 아예 포함이 되어 있지가 않네요...

        죄송합니다 제가 마크다운 형식을 잘 사용을 하지 못해서..ㅜ

      4. 김민근

        store 메서드에서 이미지를 저장하지 않는것 같은데 어디서 저장하게 되나요 ?

      5. 김민근

        TMI 지만 beginTransaction() 을 이용 할때 예외처리를 사용하여 에러가 발생된다면 DB::rollback() 되는 형식이 좋은것 같습니다.

        아래와 같이 사용 하시면 좋을것 같습니다.

        public function store() {
          try {
             DB::beginTransaction();
             .
             .
             .
             DB::commit();
          } catch (\Exception $exception) {
             DB::rollback();
          }
        }
      6. Suyong

        해당 이미지를 디비에 저장하는 부분은 찾기가 너무 어렵고..

        이부분이 제생각에는 현재 이미지를 업로드 하였을때 저장이 되는 폴더를 지정하는 것 같습니다.

        이쪽에서 말씀하셨던 코드를 수정을 해보았는데 오류만 뜨더라구요...

           public function imageUpload(Request $request, Event $event)
            {
                $rules = array(
                    'images[]' => 'image',
                );
                $validation = Validator::make($request->all(), $rules);
        
                File::makeDirectory('upload/text/images/');
                foreach($request->file('images') as $file) {
        
        
                    $destinationPath = 'upload/text/images/';
                    $source = $file->getClientOriginalName();
        
                    $rename = str_random(12) . '.' . $file->getClientOriginalExtension();;
                    $path = $destinationPath.$rename;
                    $size   = $file->getSize();
                    $result = '';
                    if($file->move($destinationPath, $rename)){
                        $result = $event->images()->create([
                            'source'=>$source,
                            'file'=>$rename,
                            'size'=>$size,
                            'path'=>$path
                        ]);
                    }
        
        
                }
                if($request->ajax()){
                    $url = thumbnail($result->path,200,200);
        
                    return response()->json([
                        'initialPreview'=>['<a href="'.asset($result->path).'"><img src="'.$url.'" class="file-preview-image cover"></a>'],
                        'initialPreviewConfig'=>[[
                            'caption'=>'',
                            'url'=>'/admin/text/image/delete',
                            'key'=>$result->id,
                        ]]
                    ]);
                }
                return true;
            }




      7. 김민근

        json 반환값은 어떻게 나오시나요 ?

      8. Suyong

        source":"20120815_1249.JPG","file":"jXWHF.JPG","size":86188,"path":"text\/rooms\/jXWHF.JPG","list_order":12,"created_at":"2017-07-21 11:13:48","updated_at":"2017-07-26 13:27:59" 

        이런식으로 나옵니다.


      9. 김민근
        DB에 저장 하실때 절대경로로 저장 하시려는거 맞나요 ? 


        $result = $event->images()->create([
                            'source'=>$source,
                            'file'=>$rename,
                            'size'=>$size,
                            'path'=> config('app.url') . $path // 이 부분을 이렇게 수정 해주세요
                        ]);
      10. Suyong

        아...!!! 정말 감사합니다 ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 오랜시간 qna 진행해주셔서 정말정말 감사드립니다!!!!!!!!!!ㅜㅜ

      CommentAdd your comment...