環境:Windows10
XAMPP v3.2.4
HeidiSQL 11.0.0.5919
laravelでCSVをアップロードできるシステムがあります。
本番環境ではアップロードできるのですが、ローカル環境では
アップロードできません。
ローカル環境の問題だと思うのですが、どうすればいいかわかりません。
何かお分かりであればご教授頂けないでしょうか?
$fileName = $request->file('upload_file')->store(''); $sjis = file_get_contents(storage_path('app/') . $fileName); $utf8 = mb_convert_encoding($sjis, 'UTF-8', 'SJIS-win'); file_put_contents(storage_path('app/') . $fileName.'.utf8', $utf8); $fp = fopen(storage_path('app/') . $fileName.'.utf8', 'r'); $headers = fgetcsv($fp); if (42 != count($headers)) { fclose($fp); Storage::delete($fileName); $form = new Form(); $form->setMessage('danger', '登録に失敗しました。CSVファイルのフォーマットが正しいことを確認してださい。'); return view('forms.upload', ['form' => $form]); }
ローカル環境で、本番環境でアップロードできたCSVをアップロードすると
'登録に失敗しました。CSVファイルのフォーマットが正しいことを確認してださい。'とエラーメッセージが
出てきます。もちろんDBにも反映されておりません。ログはないように思います。
エラーはCSVの列が42行ないとエラーになるようになっています。
CSVをddで調べたところ37行でした。
0 => "A"
1 => "B"
2 => "C"
3 => "D"
4 => "E"
5 => "F",G""
・
・
・
上記のようにところどころ【5 => "F",G""】のような形になり
その分列が少なくなってしまっています。
本番環境で同じCSVをやると正常に動きます。
回答1件
あなたの回答
tips
プレビュー