Laravel-excel: ReaderType λ˜λŠ” WriterType을 감지할 수 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2019λ…„ 05μ›” 20일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: Maatwebsite/Laravel-Excel

μ›Ή μ„œλ²„μ˜ Excel 파일 κ°€μ Έμ˜€κΈ°μ—μ„œ 이 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이것은 둜컬 μ„œλ²„μ—μ„œ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

Maatwebsite \ Excel \ μ˜ˆμ™Έ \ NoTypeDetectedException
ReaderType λ˜λŠ” WriterType을 감지할 수 μ—†μŠ΅λ‹ˆλ‹€. 파일 이름에 μœ νš¨ν•œ ν™•μž₯자λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜ λͺ…μ‹œμ  μœ ν˜•μ„ 전달해야 ν•©λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움을 μ£Όμ„Έμš”.

more information needed

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ³΄μ™„μœΌλ‘œ:

아무 것도 μž‘λ™ν•˜μ§€ μ•ŠλŠ” 경우. HTML 양식 enctype 속성을 확인해야 ν•©λ‹ˆλ‹€.

예: enctype="multipart/form-data"

λ˜λŠ”

<form action="/action" method="post" enctype="multipart/form-data"> 와 같이

이 enctype을 포함해야 ν•©λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

No ReaderType or WriterType could be detected. Make sure you either pass a valid extension to the filename or pass an explicit type

λͺ¨λ“  18 λŒ“κΈ€

티켓을 μ œμΆœν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. λΆˆν–‰νžˆλ„ κ·€ν•˜κ°€ μ œκ³΅ν•œ μ •λ³΄λŠ” λΆˆμ™„μ „ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” 당신이 μ‚¬μš©ν•˜λŠ” 버전과 그것을 μž¬μƒμ‚°ν•˜λŠ” 방법을 μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€. μ½”λ“œ 예제λ₯Ό ν¬ν•¨ν•˜μ‹­μ‹œμ˜€. ν”½μ—…ν•˜κΈ° 전에 (https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/.github/ISSUE_TEMPLATE.md) λˆ„λ½λœ 정보λ₯Ό ν™•μΈν•˜κ³  μΆ”κ°€ν•˜μ‹­μ‹œμ˜€. 이 티켓을 훨씬 μ‰½κ²Œ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ (https://laravel-excel.maatwebsite.nl/3.1/getting-started/contributing.html) 문제 ν…œν”Œλ¦Ώμ„ μž‘μ„±ν–ˆλŠ”μ§€ λ‹€μ‹œ ν™•μΈν•˜μ‹­μ‹œμ˜€. λ°”λ₯΄κ²Œ. μ΄λ ‡κ²Œ ν•˜λ©΄ 보닀 효율적으둜 티켓을 μˆ˜λ Ήν•  수 μžˆμŠ΅λ‹ˆλ‹€. 지침을 μ˜¬λ°”λ₯΄κ²Œ λ”°λ₯΄λŠ” λ¬Έμ œλŠ” λ‹€λ₯Έ λ¬Έμ œλ³΄λ‹€ μš°μ„ ν•©λ‹ˆλ‹€.

μ˜ˆμ™Έ λ©”μ‹œμ§€κ°€ κ½€ λͺ…ν™•ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν™•μž₯μžκ°€ μžˆλŠ”μ§€ ν™•μΈν•˜κ±°λ‚˜ λͺ…μ‹œμ μ΄κ³  μž‘μ„±μž/리더 μœ ν˜•μ„ μ „λ‹¬ν•˜μ‹­μ‹œμ˜€.

였λ₯˜κ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°€μ Έμ˜¬ 잘λͺ»λœ 파일 경둜λ₯Ό 보내고 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
도움이 λ˜μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

λ¬Έμ œκ°€ ν•΄κ²°λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€. Laravel Excel을 μ‚¬μš©ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

였λ₯˜κ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°€μ Έμ˜¬ 잘λͺ»λœ 파일 경둜λ₯Ό 보내고 μžˆμŠ΅λ‹ˆλ‹€.
도움이 λ˜μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 파일 경둜λ₯Ό μ–ΈκΈ‰ν•œ μœ„μΉ˜λ₯Ό μ•Œ 수 μžˆμŠ΅λ‹ˆκΉŒ? getRealPath()λ₯Ό μ‚¬μš©ν•˜μ—¬ μ—…λ‘œλ“œ νŒŒμΌμ„ κ°€μ Έμ˜€κ³  Excel::importλ₯Ό 직접 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—

였λ₯˜κ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°€μ Έμ˜¬ 잘λͺ»λœ 파일 경둜λ₯Ό 보내고 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
도움이 λ˜μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 파일 경둜λ₯Ό μ–ΈκΈ‰ν•œ μœ„μΉ˜λ₯Ό μ•Œ 수 μžˆμŠ΅λ‹ˆκΉŒ? getRealPath()λ₯Ό μ‚¬μš©ν•˜μ—¬ μ—…λ‘œλ“œ νŒŒμΌμ„ κ°€μ Έμ˜€κ³  Excel::importλ₯Ό 직접 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—

κ³ λ§ˆμ›Œ .. λ‚˜λŠ” 당신이 μ–ΈκΈ‰ ν•œ 것과 같은 λ°©μ‹μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

λˆ„κ΅¬λ“ μ§€ 이 문제둜 λ‚˜λ₯Ό 도와쀄 수 μžˆμŠ΅λ‹ˆκΉŒ? ` ReaderType λ˜λŠ” WriterType을 감지할 수 μ—†μŠ΅λ‹ˆλ‹€. 파일 이름에 μœ νš¨ν•œ ν™•μž₯자λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜ λͺ…μ‹œμ  μœ ν˜•μ„ 전달해야 ν•©λ‹ˆλ‹€.
' heroku에 λ°°ν¬ν•œ ν›„ 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

λˆ„κ΅¬λ“ μ§€ 이 문제둜 λ‚˜λ₯Ό 도와쀄 수 μžˆμŠ΅λ‹ˆκΉŒ? ` ReaderType λ˜λŠ” WriterType을 감지할 수 μ—†μŠ΅λ‹ˆλ‹€. 파일 이름에 μœ νš¨ν•œ ν™•μž₯자λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜ λͺ…μ‹œμ  μœ ν˜•μ„ 전달해야 ν•©λ‹ˆλ‹€.
' heroku에 λ°°ν¬ν•œ ν›„ 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

λ°œν–‰ ν…œν”Œλ¦Ώμ΄ μ±„μ›Œμ§„ μƒˆ 티켓을 λ§Œλ“œμ‹­μ‹œμ˜€. 문제 ν…œν”Œλ¦Ώμ€ μš°λ¦¬κ°€ 당신을 λ„μšΈ 수 μžˆλŠ” 데 ν•„μš”ν•˜λ©° μƒˆ 문제λ₯Ό μ—΄ β€‹β€‹λ•Œ μžλ™μœΌλ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 문제 ν…œν”Œλ¦Ώμ˜ λ‚΄μš©μ„ μ œκ±°ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

λˆ„κ΅¬λ“ μ§€ utf-8 csv νŒŒμΌμ„ μ—…λ‘œλ“œν•˜λŠ” 방법을 도와쀄 수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ”μ΄ 였λ₯˜μ— μ§λ©΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ : Maatwebsite \ Excel \ Exceptions \ NoTypeDetectedException
ReaderType λ˜λŠ” WriterType을 감지할 수 μ—†μŠ΅λ‹ˆλ‹€. 파일 이름에 μœ νš¨ν•œ ν™•μž₯자λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜ λͺ…μ‹œμ  μœ ν˜•μ„ 전달해야 ν•©λ‹ˆλ‹€.

λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 파일 경둜λ₯Ό μ–ΈκΈ‰ν•œ μœ„μΉ˜λ₯Ό μ•Œ 수 μžˆμŠ΅λ‹ˆκΉŒ? getRealPath()λ₯Ό μ‚¬μš©ν•˜μ—¬ μ—…λ‘œλ“œ νŒŒμΌμ„ κ°€μ Έμ˜€κ³  Excel::importλ₯Ό 직접 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—

그것은 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ‹€μ œ κ²½λ‘œμ—λŠ” ν™•μž₯μžκ°€ μ—†μœΌλ―€λ‘œ λ…μž μœ ν˜•μ„ μΆ”μΈ‘ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ—…λ‘œλ“œλœ 파일 μΈμŠ€ν„΄μŠ€ λ˜λŠ” νŒλ…κΈ° μœ ν˜•μ„ λͺ…μ‹œμ μœΌλ‘œ 전달

λ¬Έμ œλŠ” getRealPath()μž…λ‹ˆλ‹€.
μ—¬κΈ°μ—μ„œ 해결책을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

https://stackoverflow.com/a/57106453/12226621

λŒ€μ‹ μ—
$path = $request->file('mcafile')->getRealPath();

temp에 μ €μž₯ν•˜κ³  ν•΄λ‹Ή 경둜λ₯Ό κ°€μ Έ μ™€μ„œ κ°€μ Έμ˜€κΈ° κΈ°λŠ₯으둜 λ³΄λƒ…λ‹ˆλ‹€.

$path1 = $request->file('mcafile')->store('temp'); 
$path=storage_path('app').'/'.$path1;  
$data = \Excel::import(new UsersImport,$path);

μ—…λ‘œλ“œλœ νŒŒμΌμ„ 전달할 수 μžˆμŠ΅λ‹ˆλ‹€. \Excel::import(new UsersImport, $request->file('mcafile'))

Cent OSλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 ν™•μž₯자 없이 μž„μ‹œ νŒŒμΌμ„ μ €μž₯ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μž„μ‹œ 파일의 이름을 λ°”κΎΈκ³  tmp ν™•μž₯자λ₯Ό μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

μ•„λž˜μ™€ 같은 λ‚΄ μ½”λ“œκ°€ μž‘λ™ν•©λ‹ˆλ‹€.

$tmpfname = request()->file('userfile')->getPathName();
rename($tmpfname, $tmpfname .= '.tmp');

λ³΄μ™„μœΌλ‘œ:

아무 것도 μž‘λ™ν•˜μ§€ μ•ŠλŠ” 경우. HTML 양식 enctype 속성을 확인해야 ν•©λ‹ˆλ‹€.

예: enctype="multipart/form-data"

λ˜λŠ”

<form action="/action" method="post" enctype="multipart/form-data"> 와 같이

이 enctype을 포함해야 ν•©λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

No ReaderType or WriterType could be detected. Make sure you either pass a valid extension to the filename or pass an explicit type

Maatwebsite\Excel\Exceptions\NoTypeDetectedException

ReaderType λ˜λŠ” WriterType을 감지할 수 μ—†μŠ΅λ‹ˆλ‹€. 파일 이름에 μœ νš¨ν•œ ν™•μž₯자λ₯Ό μ „λ‹¬ν•˜κ±°λ‚˜ λͺ…μ‹œμ  μœ ν˜•μ„ 전달해야 ν•©λ‹ˆλ‹€.

이것은 λ‚΄ μ»¨νŠΈλ‘€λŸ¬μž…λ‹ˆλ‹€.

{
        Excel::import(new MedicineImport(Auth::user()->id), request()->file('select_file'));

        return redirect('subscriber/medicine/imp')->with('success', 'All good!');
    }

이것은 λ‚΄ μ–‘μ‹μž…λ‹ˆλ‹€.

<form method="get" enctype="multipart/form-data" action="{{ url('subscriber/medicine/imp/impEx') }}">
    {{ csrf_field() }}

<label>Select File for Upload</label>
        <input type="file" name="select_file" />
        <input type="submit" name="upload" class="btn btn-primary" value="Upload">
   </form>

이 였λ₯˜κ°€ ν‘œμ‹œλ˜κ³  3.1을 μ‚¬μš©ν•˜λŠ” 이유λ₯Ό μ•Œλ €μ£Όμ„Έμš”.

μ•ˆλ…•ν•˜μ„Έμš”, μœ„μ˜ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€! λ‹Ήμ‹ μ˜ 도움이 ν•„μš”ν•©λ‹ˆλ‹€.

였λ₯˜κ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°€μ Έμ˜¬ 잘λͺ»λœ 파일 경둜λ₯Ό 보내고 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
도움이 λ˜μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

μ—¬κΈ°μ—μ„œ κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 당신은 무엇을 ν–ˆμŠ΅λ‹ˆκΉŒ?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰