Как я могу включить автоматические обновления в спокойном межплатформенном приложении?

Проблема с вашим кодом заключается в том, что если число файлов в папке «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!');
}
48
задан Peter Mortensen 11 May 2013 в 02:12
поделиться

5 ответов

4998422-

Хорошо, так что я думаю, я беру его как «нет (кроссплатформенная) способ». Это очень плохо!

0
ответ дан 7 November 2019 в 12:43
поделиться

Это - старый вопрос, но нет Белка в ответах, который является ЛУЧШЕЕ РЕШЕНИЕ , вот то, что я делаю в QT 5.12.4 с QT, быстрым "мое qml приложение", можно сделать это на любом другом языке

, я делаю это в окнах существует версия Mac белки также, я не знаю о релизе проводника пакетов самородка загрузки Linux

  1. https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases
  2. открытый проводник пакетов самородка и добавляю этот каталог 'lib/net45', не имеет значения, что у Вас есть приложение .NET или нет, я сделал это для своего спокойного приложения иначе, это не будет работать.
  3. добавляют, что все файлы в эту папку указывают, что Ваша версия в метаданных
  4. сохраняет nupkg выпуск белки загрузки файла
  5. https://github.com/Squirrel/Squirrel. Windows/выпуски
  6. добавляет белку к пути среды окон
  7. открытый cmd и CD к каталогу nupkg файла
  8. squirrel --releasify file_name.nupkg-> теперь, имид выпускает папку, должен быть файл setup.exe, который установит приложение и другие файлы.
  9. для создания новой версии делают 2,3,4,7,8 снова, если обновление она создаст файл дельты, который является только необходимым файлом для обновления, для помещения этого регистрирует в сервисный каталог, например, в папке обновлений веб-сайта, который необходимо отключить просмотр каталога в IIS, и к приложению автоматического обновления необходимо назвать Update.exe, который находится в родительской папке каталога appdir/../update.exe --update http://yourserver.com/upates/ корневого каталога приложения после того, как приложение перезапуска приложения должно запуститься с новой версии
  10. , можно найти документацию для белки в https://github.com/Squirrel/Squirrel. Windows/blob/develop/docs/getting-started/0-overview.md и проводник пакетов самородка здесь https://github.com/NuGetPackageExplorer/NuGetPackageExplorer и Вы можете использовать только nuget.exe также, если Вы не хотите использовать проводник пакетов самородка, который может использоваться для динамического поколения версий, которые могут быть загрузкой от https://www.nuget.org/downloads

, Настолько легкий. Теперь у Вас есть приложение автоматического обновления, которое загрузит обновления с приложения автоматического обновления и сервера. Для большего количества информации можно прочитать документацию.
примечание : для использования iis https://github.com/Squirrel/OldSquirrelForWindows/issues/205

1
ответ дан 7 November 2019 в 12:43
поделиться

Я предлагаю вам прочитать на плагине и как создавать и использовать их. Если ваша архитектура приложения является модульной и разделить на разные плагины. Посмотрите на утилиту обновления Google Auto Update http://code.google.com/p/omaha/ . Мы используем это.

1
ответ дан 7 November 2019 в 12:43
поделиться

Thibault Covelier написание учебника (по-французски) для разработки обновлений. Я знаю, что объяснения на французском языке (и все не понимают французский), но я думаю, что это можно читаемое с помощью переводчика Web Translator Google Translate . С этим у вас будет перекрестная платформа, но вам нужно написать его самостоятельно.

Для того, что я знаю, единственная часть обновления, которая объясняется в руководстве, является частью загрузки файлов. В этом случае это может помочь вам, обратитесь к руководству, UP Updater Avec Qt .

Я надеюсь, что поможет.

1
ответ дан 7 November 2019 в 12:43
поделиться

Я разработал библиотеку автообновления, которая прекрасно работает в Mac OS X, Linux и почти во всех Unix, которая позволяет вам разорвать связь с файлом, пока файл еще открыт. Причина в том, что я просто извлек загруженный пакет поверх существующего приложения. К сожалению, поскольку я полагался на эту функциональность, у меня возникли проблемы в Windows, поскольку Windows не позволяет отсоединить открытый файл.

Единственная альтернатива, которую я мог найти, - это использовать MoveFileEx с флагом замены при перезагрузке, но это ужасно.

Однако переименование рабочего каталога приложения работает в Windows 7 и Windows XP. Я еще не пробовал Windows Vista.

2
ответ дан 7 November 2019 в 12:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: