Проблема с вашим кодом заключается в том, что если число файлов в папке «1» больше 1, оно всегда загружается в папку «2» & amp; folderId
никогда не увеличивается, когда вы загружаете больше файлов. Вам необходимо проверить загруженные файлы, чтобы решить folderId
. Измените свой код как,
/**
* File Upload.
*
* @param Request $request
* @return
*/
public function store(Request $request)
{
$uploaded_files = array_filter(Storage::allFiles('public'), function($file){
// ignore the .gitgnore from the upoloaded list. You can improve this.
return strpos($file, '.gitignore') === false;
});
$uploaded_files_count = count($uploaded_files);
// intdiv() is supported from php7
$folderId = intdiv($uploaded_files_count, 2) + 1;
$path = 'public/' . $folderId;
$files = Storage::files($path);
$filesSum = count($files);
if ($filesSum <= 1) {
$request->file('file')->storeAs($path, $request->file('file')->getClientOriginalName());
} else {
$path = 'public/' . ($folderId + 1) ;
$request->file('file')->storeAs($path, $request->file('file')->getClientOriginalName());
}
return redirect()->back()->with('message', 'File has been uploaded!');
}
Хорошо, так что я думаю, я беру его как «нет (кроссплатформенная) способ». Это очень плохо!
Это - старый вопрос, но нет Белка в ответах, который является ЛУЧШЕЕ РЕШЕНИЕ , вот то, что я делаю в QT 5.12.4 с QT, быстрым "мое qml приложение", можно сделать это на любом другом языке
, я делаю это в окнах существует версия Mac белки также, я не знаю о релизе проводника пакетов самородка загрузки Linux
squirrel --releasify file_name.nupkg
-> теперь, имид выпускает папку, должен быть файл setup.exe, который установит приложение и другие файлы. appdir/../update.exe --update http://yourserver.com/upates/
корневого каталога приложения после того, как приложение перезапуска приложения должно запуститься с новой версии , Настолько легкий. Теперь у Вас есть приложение автоматического обновления, которое загрузит обновления с приложения автоматического обновления и сервера. Для большего количества информации можно прочитать документацию.
примечание : для использования iis https://github.com/Squirrel/OldSquirrelForWindows/issues/205
Я предлагаю вам прочитать на плагине и как создавать и использовать их. Если ваша архитектура приложения является модульной и разделить на разные плагины. Посмотрите на утилиту обновления Google Auto Update http://code.google.com/p/omaha/ . Мы используем это.
Thibault Covelier написание учебника (по-французски) для разработки обновлений. Я знаю, что объяснения на французском языке (и все не понимают французский), но я думаю, что это можно читаемое с помощью переводчика Web Translator Google Translate . С этим у вас будет перекрестная платформа, но вам нужно написать его самостоятельно.
Для того, что я знаю, единственная часть обновления, которая объясняется в руководстве, является частью загрузки файлов. В этом случае это может помочь вам, обратитесь к руководству, UP Updater Avec Qt .
Я надеюсь, что поможет.
Я разработал библиотеку автообновления, которая прекрасно работает в Mac OS X, Linux и почти во всех Unix, которая позволяет вам разорвать связь с файлом, пока файл еще открыт. Причина в том, что я просто извлек загруженный пакет поверх существующего приложения. К сожалению, поскольку я полагался на эту функциональность, у меня возникли проблемы в Windows, поскольку Windows не позволяет отсоединить открытый файл.
Единственная альтернатива, которую я мог найти, - это использовать MoveFileEx с флагом замены при перезагрузке, но это ужасно.
Однако переименование рабочего каталога приложения работает в Windows 7 и Windows XP. Я еще не пробовал Windows Vista.