수색…


매개 변수

매개 변수 / 함수 기술
파일 업로드 파일 이름 <input> 필드
$ sampleName 동적으로 생성 된 문자열이거나 사용자가 업로드 한 파일의 이름 일 수도 있습니다.
app_path () 응용 프로그램에 절대 경로를 제공하는 Laravel 도우미입니다.
getCLientOriginalExtension () 사용자가 업로드 한 파일의 확장자를 가져 오는 Laravel 래퍼

사용자가 업로드 한 파일의 타임 스탬프 파일 이름 생성.

아래는 Windows 컴퓨터에서 작동하지 않습니다.

$file = $request->file('file_upload');
$sampleName = 'UserUpload';
$destination = app_path() . '/myStorage/';
$fileName = $sampleName . '-' . date('Y-m-d-H:i:s') . '.' . 
$file->getClientOriginalExtension();
$file->move($destination, $fileName);  

"파일을 / 경로로 이동할 수 없습니다 ..."와 같은 오류가 발생합니다.

왜? - 이것은 우분투 서버에서 완벽하게 작동합니다.
그 이유는 Windows colon ':' 은 파일 이름에 허용되지 않기 때문입니다. 이것은 우연히 잘 작동하지 않는 코드가 왜 작동하지 않는지 궁금해 할 정도로 작습니다.
우리의 첫 번째 직감은 파일 사용 권한을 확인하는 것과 같지만 colon ':' 이 여기에서 범인임을 알지 못할 수도 있습니다.
따라서 Windows에서 파일을 업로드하려면 타임 스탬프가 붙은 파일 이름을 생성하는 동안 colon':' 사용하지 말고 대신 아래와 같이하십시오.

$filename = $sampleName . '-' . date('Y-m-d-H_i_s') . '.' . $file->getClientOriginalExtension();  //ex output UserUpload-2016-02-18-11_25_43.xlsx
            
                                   OR

$filename = $sampleName . '-' .date('Y-m-d H i s') . '.' . $file->getClientOriginalExtension();  //ex output UserUpload-2016-02-18 11 25 43.xlsx

                                   OR

$filename = $sampleName . '-'.date('Y-m-d_g-i-A').'.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18_11-25-AM.xlsx


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow