2016-10-12 2 views
4

파일 이름과 디렉토리 생성 :이 파일을 저장 않습니다Laravel 5.3 저장 :: 넣어 내가 파일 저장 Laravel의 파일 저장 기능을 사용하고

public function dataPost(Request $request) { 

    $fileInForm = 'doc'; 

    if ($request->hasFile($fileInForm)) { 

     $file = $request->file($fileInForm); 
     if ($file->isValid()) { 

      // Filename is hashed filename + part of timestamp 
      $hashedName = hash_file('md5', $file->path()); 
      $timestamp = microtime() * 1000000; 

      $newFilename = $hashedName . $timestamp . '.' . $file->getClientOriginalExtension(); 

      Storage::disk('local')->put($newFilename, $file); 
     } 
    } 
} 

을하지만, 디렉토리 내에 같은 이름 예를 들어 파일 :

storage/app/952d6c009.jpg/952d6c009.jpg

또는

storage/app/234234234.jpg/234234234.jpg

예상 되나요? 파일마다 별도의 디렉토리가 없어도 파일을 저장할 수있는 방법이 있습니까?

감사합니다.

답변

9

에 저장된 얻을 것이다

Storage::disk('local')->putFile('images', $file); 

로 변경할 수 객체, 시도해보십시오.

Storage::disk('local')->put($newFilename, file_get_contents($file));

2

이 문제는 파일 이름으로 저장할 디렉토리를 지정했기 때문에 발생했습니다. newFilename은 'images'와 같은 디렉토리 이름이어야합니다. 이 라인을 참조

Storage::disk('local')->put($newFilename, $file); 

그래서 당신은 당신이 두 번째 인수는 제출하지에 파일 내용을 제공해야 그런 다음 경로가 storage/app/images/234234234.jpg

+0

이 경우 어떤 시점에서 파일이 새 파일 이름을 갖습니까? '$ file' 객체를 편집하여 파일 이름을 업데이트해야합니까? '$ file-> originalName = $ newFilename; '과 같은 것? – zundi

+0

당신은 그것을 할 수 있거나 @ ABDEL-RHMAN을 사용할 수 있습니다. – xmhafiz