2016-06-09 2 views
0

Laravel 프레임 워크의 'public'폴더에 이미지를 저장하는 데 문제가 있습니다 (정적 콘텐츠 폴더라고 생각합니까? 틀렸다면 수정하십시오).정적 콘텐츠를 Laravel 공용 폴더에 저장

이미지를 생성하고 이미지 URL을 테이블에 저장하는 faker를 사용하여 시드를 실행 중입니다. 이 모든 것이 올바르게 작동하지만 씨드 자체는 내가 만든 공용 폴더 내에서 폴더에 액세스하거나 찾지 못해 계속 실패합니다. 이것은 내 공용 폴더 구조입니다 :

<?php 

use Illuminate\Database\Seeder; 

class ProductsTableSeeder extends Seeder 
{ 
    /** 
    * Run the database seeds. 
    * 
    * @return void 
    */ 
    public function run() 
    { 
     DB::table('products')->truncate(); 

     $faker = Faker\Factory::create(); 

     $limit = 30; 

     for($i = 0; $i < $limit; $i++) { 
      DB::table('products')->insert([ 
       'title'  => $faker->name, 
       'SKU'   => $faker->name, 
       'description' => $faker->text, 
       'created_at' => $faker->dateTime, 
       'updated_at' => $faker->dateTime, 
       'images'  => $faker->image(URL::to(Config::get('assets.images')) ,800, 600, [], []) 
      ]); 
     } 
    } 
}# 

'assets.images'설정 파일 :

/공공/자산/이미지

그리고 여기이 폴더에 내 이미지를 저장해야 내 씨앗 입니다 :

<?php 
    return [ 
     'images' => '/assets/images' 
    ]; 

나는 다음과 같은 오류 얻을 내 데이터베이스 채우기 위해 노력하고 씨앗을 실행하면 :

[InvalidArgumentException]          
    Cannot write to directory "http://localhost:8931/assets/images" 

어디서 잘못 될지 알 수 없습니다. 아무도 통찰력을 제공 할 수 있습니까?

+0

'에 http : // localhost를 : 8931/자산/images' 나는이 생각 'http : // localhost : 8931/public/assets/images'이어야합니다. – aldrin27

답변

1

저는 전문가가 아니지만 디스크의 파일 경로가 아닌 URL에 쓰려고하는 것처럼 예외가 발생했습니다.

아마 PHP 스크립트를 실행하는 프로세스 소유자에게 해당 위치에 대한 쓰기 권한이 있는지 확인하고 싶을 것입니다.

+0

예 파일 경로에 액세스하는 함수 호출을 변경했지만 여전히 동일한 오류가 발생합니다. 내 권한도 괜찮습니다. – devoncrazylegs

2

변경 URL의 전화 ::에 도우미 기능 public_path()이 같은 :

$faker->image(public_path(Config::get('assets.images')) ,800, 600, [], [])

+0

안녕하세요. 나는 그것을 당신의 코드로 바꾸었다. (왜 내가 그 코드를 사용해야하는지 이해한다.)하지만 여전히 같은 오류가 난다. 명확히하기 위해 폴더에 대한 사용 권한도 있습니다. – devoncrazylegs

+0

절대적으로 같은 오류입니까? 다른 디렉토리가 없습니까? 다른 예외가 없습니까? – TheFallen

+0

예 : [InvalidArgumentException] 오류가 발생했습니다. "/ var/www/public/assets/images"디렉토리에 쓸 수 없습니다. – devoncrazylegs

관련 문제