<form action="/upload/test/f" class="form" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<input id="fileupload" type="file" name="file" data-url="http://localhost:8000/upload" style="display: inline;" >
<ul id="file-upload-list" class="list-unstyled">
</ul>
<input type="submit" value="submit">
</form>
//Controller Laravel
public function storebigfile(Request $request){
ini_set('post_max_size', '0');
ini_set('upload_max_filesize', '-1');
ini_set('max_input_time', '-1');
ini_set('memory_limit', '256M');
ini_set('max_execution_time', '-1');
// create the file receiver
$receiver = new FileReceiver("file", $request, HandlerFactory::classFromRequest($request));
// check if the upload is success, throw exception or return response you need
if ($receiver->isUploaded() === false) {
throw new UploadMissingFileException();
}
// receive the file
$save = $receiver->receive();
// check if the upload has finished (in chunk mode it will send smaller files)
if ($save->isFinished()) {
// save the file and return any response you need, current example uses `move` function. If you are
// not using move, you need to manually delete the file by unlink($save->getFile()->getPathname())
return $this->saveFile($save->getFile());
}
// we are in chunk mode, lets send the current progress
/** @var AbstractHandler $handler */
$handler = $save->handler();
return response()->json([
"done" => $handler->getPercentageDone(),
]);
}
protected function saveFile(UploadedFile $file)
{
$fileName = $this->createFilename($file);
// Group files by mime type
$mime = str_replace('/', '-', $file->getMimeType());
// Group files by the date (week
$dateFolder = date("Y-m-W");
// Build the file path
$filePath = "upload/{$mime}/{$dateFolder}/";
$finalPath = storage_path("app/".$filePath);
// move the file name
$file->move($finalPath, $fileName);
return response()->json([
'path' => $filePath,
'name' => $fileName,
'mime_type' => $mime
]);
}
protected function createFilename(UploadedFile $file)
{
$extension = $file->getClientOriginalExtension();
$filename = str_replace(".".$extension, "", $file->getClientOriginalName());
// Filename without extension
// Add timestamp hash to name of the file
$filename .= "_" . md5(time()) . "." . $extension;
return $filename;
}
Таким образом, если подключение к Интернету медленное и сценарии загружают файл в течение 300 секунд, происходит сбой. Говоря, сброс соединения. Но если я подключусь к быстрому интернету, он будет загружать файлы до 300 секунд и загружать файлы без проблем.
Я изменил max_execution_size и еще одну максимальную загрузку файла до максимума в php_ini, но ничего не помогает. редактирование .htaccess не помогает. Я поговорил с хостинг-провайдером, чтобы изменить настройки apache, но они говорят, что я могу редактировать на php.ini или .htaccess.
Пожалуйста, помогите Спасибо заранее