Моя первоначальная проблема заключалась в том, чтобы попытаться загрузить 54MB TXT -файл с Laravel, и я получал posttoolargeExcpetion в этой строке:
$request->validate([
'file' => 'required|mimes:csv,txt',
]);
во времена WAMP изменение post_max_size и upload_max_filesize было легко, но теперь мне потребовалось время, чтобы обнаружить, что это должно быть сделано с чем -то подобным
RUN echo 'post_max_size = 64M' >> /usr/local/etc/php/conf.d/docker-php-post-max-size.ini
RUN echo 'upload_max_filesize = 64M' >> /usr/local/etc/php/conf.d/docker-php-upload-max-filesize.ini
< /code>
Теперь ошибка перестала быть брошена, но никакой ошибки вообще не было. By using xdebug I found that an error was being thrown (but not shown, idk why) and it was "given data was invalid".
I thought it was because both post and upload were initially equal, due to this restriction and increased upload to 100. But the error persisted.
RUN echo 'post_max_size = 64M' >> /usr/local/etc/php/conf.d/docker-php-post-max-size.ini
RUN echo 'upload_max_filesize = 100M' >> /usr/local/etc/php/conf.d/docker-php-upload-max-filesize.ini
< /code>
Теперь у меня нет идей. Почему эта ошибка бросается? Это исправлено?
@csrf
Select the file to reorder the columns
Upload
fileUploadController.php
public function showUploadForm()
{
return view('upload');
}
public function upload(Request $request)
{
//Log::info($request->file('file')->getClientMimeType());
$request->validate([
'file' => 'required|mimes:csv,txt',
]);
$file = $request->file('file');
// Process the file
$processedData = $this->processFile($file);
// Generate a new file name
$newFileName = 'reordered_' . $file->getClientOriginalName() . '_'.time().' . '.$file->getClientOriginalExtension();
// Write processed data into a new file
$handle = fopen(storage_path('app/processed/' . $newFileName), 'w');
foreach ($processedData as $rowData) {
//fputcsv($handle, $rowData, "\t");
fputs($handle, implode("\t", $rowData)."\n");
}
fclose($handle);
// Return a link to the processed file
return response()->download(storage_path('app/processed/' . $newFileName))->deleteFileAfterSend(true);
}
private function processFile($file)
{
$data = [];
$isHeader = true;
// Read the CSV file
if (($handle = fopen($file->getRealPath(), 'r')) !== false) {
while (($rowData = fgetcsv($handle, 0, "\t")) !== false) {
if ($isHeader) {
// Check if we reached the [Data] section
if ($rowData[0] === '[Data]') {
$isHeader = false;
}
// If still in the header section, simply push the row to data as is
//$data[] = $rowData;
} else {
$merged = $rowData[4] == 'Chr' ? 'Plus Strand' : $rowData[8].$rowData[9];
// Swap columns as required
$processedRow = [
$rowData[2], // SNP Name
$rowData[4], // Chr
$rowData[5], // Position
$merged
];
$data[] = $processedRow;
}
}
fclose($handle);
}
return $data;
}
Подробнее здесь: https://stackoverflow.com/questions/782 ... data-was-i
Увеличение docker post_max_size и opload_max_filesize, вызванные «данными, были ошибочными» ошибкой в Laravel ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему я должен не допустить данных от Torch.Size ([50]) до Torch.Size ([50, 1])
Anonymous » » в форуме Python - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-