2016-08-15 6 views
1

나는 시도하고 다음과 같이 파일을 업로드 : Laravel 5.2 파일 업로드

$name = $img->getClientOriginalName(); 
$fullPath = Product::getUploadPath(); // Returns public_path(); with custom directory appended 
$uploaded = $img->move($fullPath, $name); 

나는 아래의 오류 :

Could not move the file 
"/private/var/folders/1l/fxl7spqj2p113fpffm3k0sy00000gn/T/phpIgpWGy" to 
"/dir/subdir/subsubdir/subsubdir/public/backend/images/products/pic.jpg"() 

이 interestsake, 나는이 이미지의 전체 해결 경로를 구축, 이를 move() 메소드의 인수로 전달했습니다. 이전에 작동했던 메모리가 제공되었습니다.

"/dir/subdir/subsubdir/subsubdir/public/backend/images/products/pic.jpg/" 

내 화면을 통해 내 주먹을 운전에 매우 가까이있어 :

$uploaded = $img->move($fullPath.'/'.$name); 

어떤 예외가 발생하지 않습니다, 그러나, 업로드 된 파일은 현재 디렉토리가됩니다.

+0

수면 부족 일 수도 있지만이 코드가 알려진 문제없이 이전에 작동했음을 확신합니다. 최근에 이미지 크기를 조정하기 위해 개입 플러그인을 설치했지만 디버깅하는 동안 플러그인을 제거했습니다. 내 애플 커널에서. –

+1

파기가 너무 많지 않은 경우 대상 디렉토리에 대한 사용 권한을 확인 했습니까? 'UploadedFile' 클래스의'move()'메소드는 PHP의'move_uploaded_file()'함수를 호출합니다. 그들은 그 호출에서 오류를 억제하지만 당신이보고있는 그 커스텀 메시지를 가지고'FileException'을 던집니다. 두 번째 시도가있는 디렉토리로 작성되는 파일은 첫 번째 매개 변수가 대상 디렉토리이고 두 번째 이름이 파일 이름이므로 파일 이름 없이는 디렉토리 만 해석된다는 의미가 있습니다. – stratedge

+0

디렉토리가 존재하지 않고 laravel이'move()'가 호출 될 때 경로를 생성 할 때, 주어진 디렉토리가 불충분 한 권한을 가질 수 있습니까? 또한 디렉토리를 만들 때 디렉토리가 비어 있지 않고 임시 PHP가있는 것 같습니다. –

답변

1

사용 권한 문제 일 수 있습니다. PHP 프로세스를 실행하는 사용자는 파일이 저장 될 디렉토리에 대한 쓰기 권한이 있어야합니다. 테스트를 위해 777 디렉토리를 chmod'ing 할 수 있다면 적어도 허가 가능성에 즉각적인 yes 또는 no를 제공 할 것입니다.

또한 파일이 이동 될 디렉토리가 존재하는지 확인하십시오. Symfony의 UploadedFile::move() 메소드는 PHP의 move_uploaded_file() 함수로 돌아갑니다.이 함수는 파일 이동시 누락 된 디렉토리를 만들지는 않습니다.

파일 업로드에 관해서는 이전에 모두있었습니다. 미치게 할 수 있습니다.