수색…
매개 변수
매개 변수 / 함수 | 기술 |
---|---|
파일 업로드 | 파일 이름 <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