Как я могу загрузить файлы на сервер

Обновлено: 21.11.2024

Написание кода для загрузки изображений на сервер с нуля кажется очень сложной задачей. Я собираюсь сделать очень простую форму загрузки, чтобы продемонстрировать, как работают данные файла и как их можно передавать.

В этом руководстве мы создадим форму загрузки с помощью HTML, отправим файлы с помощью JavaScript, а также обработаем и загрузим их с помощью PHP.

Обратите внимание, что это не полностью функциональный, безопасный, проверенный рабочий код. Он просто предназначен для того, чтобы в простой и понятной форме продемонстрировать, как создать свою первую форму загрузки.

  • Базовые знания HTML.
  • Основные знания синтаксиса и структуры кода PHP
  • Понимание локальных сред PHP. Если вы не знаете, что это значит, прочитайте это руководство по настройке среды MAMP.
  • Создайте простейшую форму с HTML, чтобы получать файлы с локального компьютера.
  • Отправить данные из HTML-формы в PHP-скрипт с ванильным JavaScript.
  • Обработайте данные в сценарии PHP и переместите локальные файлы в каталог uploads/ на сервере.

Как указано в предварительных требованиях, вы должны иметь базовые знания PHP и локальных серверных сред.

Если вы уже знаете, как использовать PHP и локальные среды, переходите к следующему разделу.

Если вы используете Mac, вы можете создать сервер с помощью одной команды. Чтобы проверить это, создайте файл с именем test.php в выбранном вами каталоге. Я собираюсь создать каталог с именем local . Полный путь будет Users/tania/local .

В приложении "Терминал", которое я открою, нажав ПРОБЕЛ + КОМАНДА и введя "Терминал", перейдите в каталог, в котором вы создали файл.

Если вы работаете в Windows или не хотите использовать командную строку, настройте MAMP.

Создание формы загрузки в HTML

В корне локального сервера создайте файл index.html. Мы просто создадим быстрый скелет.

Давайте добавим веб-форму HTML в тело .

Здесь мы создаем тип ввода файла, который принимает массив файлов ( files[] ), и мы указываем несколько, чтобы можно было выбрать более одного файла. files[] может иметь любое имя — вы можете использовать uploads[] или images[] , но я назвал его files[] для простоты.

Наконец у нас есть кнопка отправки. Поскольку следующим шагом будет добавление сценария, давайте просто добавим ссылку на файл JavaScript, который мы создадим.

И это все, что нам нужно для представления.

Отправка данных формы через JavaScript

Сейчас нажатие кнопки "Отправить" в форме никуда не приводит. Поскольку у нас нет действия, ведущего к URL-адресу, форма по умолчанию просто отправит сообщение самой себе. Поскольку index.html является файлом html, а не файлом PHP, на этой странице не может выполняться обработка формы. Вместо этого мы отправим форму в PHP через JavaScript.

Создайте файл с именем upload.js.

Во-первых, давайте определим две переменные: URL-адрес, по которому мы хотим отправить данные, и элемент DOM для формы.

Мы собираемся добавить прослушиватель событий для отслеживания отправки формы, но предотвратим срабатывание действия по умолчанию.

Давайте соберем файлы со свойством .files и начнем новый интерфейс FormData().

Для каждого отправленного файла добавьте его в массив files[].

Наконец, используйте встроенный Fetch API, чтобы отправить данные по указанному URL-адресу. Вывести ответ на консоль (в целях тестирования).

Вот завершенный файл upload.js.

Теперь, как мы можем проверить, правильно ли проходят все эти данные? Распечатаем данные файла.

Создайте новый файл с именем process.php и распечатайте содержимое суперглобального массива $_FILES , который будет содержать данные для всех наших файлов.

Получив этот файл, попробуйте загрузить несколько файлов через форму. Я создал phplogo.jpg и testfile1.txt для тестирования и загрузил файл.

В инструментах разработчика в разделе Консоль вы должны увидеть такой ответ:

Инструменты разработчика -> Консоль

Если вы видите статус: 200 , это означает, что файл попал на правильный URL-адрес и URL-адрес существует.

Теперь в инструментах разработчика перейдите на вкладку Сеть. Вы должны увидеть имя файла process.php. Нажмите на файл и нажмите Ответ. Там вы должны увидеть вывод print_r($FILES) . Это будет выглядеть примерно так:

Инструменты разработчика -> Сеть -> Ответ

Теперь мы знаем, что нужные файлы и все связанные с ними данные были обработаны. Успех!

Обработка данных формы с помощью PHP

Теперь, когда мы собрали все файлы из формы и отправили их в process.php с помощью JavaScript, нам нужно переместить данные файла с помощью PHP.

Во-первых, мы хотим убедиться, что код запускается только тогда, когда запрос POST попадает в файл.

Мы также хотим убедиться, что файлы прошли проверку.

Создайте папку в корне вашего проекта под названием uploads. Этот каталог должен иметь права доступа 755 для приема входящих файлов.

На этом этапе мы создадим массив для ошибок, установим путь к каталогу, куда должны идти загрузки, и установим утвержденные расширения.

Поскольку пользователь может загружать несколько файлов, мы создадим переменную $all_files, получим количество загружаемых файлов и создадим цикл for.

Теперь для каждого файла мы получим имя файла, данные временного файла, тип, размер и расширение.

Теперь мы можем установить несколько правил для файлов. Если тип файла отсутствует в одобренном списке расширений или файл слишком велик, мы добавим его в массив ошибок. Я установил размер файла 2 мегабайта.

Если ошибок не было, мы можем продолжить и переместить файл в папку для загрузки с помощью команды move_uploaded_file.

Теперь мы можем закрыть цикл for и распечатать ошибки. Это будет отображаться на вкладке сети, которую мы использовали ранее, чтобы увидеть вывод $_FILES .

Соедините все вместе, и вот вам process.php.

Теперь проверьте это. Если вы используете форму для загрузки файлов, вы увидите их в папке загрузок. Если вы попытаетесь загрузить слишком большой файл или файл неправильного типа, вы увидите ошибки в ответе Сеть.

Поздравляем, вы успешно создали работающую форму загрузки. Это захватывающий небольшой процесс, если вы никогда раньше не загружали файл или не использовали суперглобальную переменную $_FILES.

Полный исходный код находится на GitHub.

Обратите внимание, что это не полный и безопасный производственный процесс. Вот несколько моментов, которые следует учитывать:

  • Проверка на стороне JavaScript отсутствует. Перед отправкой пользователю должно быть показано сообщение об ошибке, если его файл имеет неправильный тип.
  • Работа с несколькими файлами с одинаковыми именами.
  • Этот метод обработки ошибок предназначен только для процесса разработки.

Спасибо, что прочитали. Я также могу рассказать о загрузке на Amazon S3 и/или DigitalOcean Spaces, если есть интерес.

В этой статье показано, как опубликовать свой сайт в Интернете с помощью инструментов передачи файлов.

Предварительные требования: Вы должны знать, что такое веб-сервер и как работают доменные имена. Вы также должны знать, как настроить базовую среду и написать простую веб-страницу.
Цель: Научиться отправлять файлы на сервер с помощью различных доступных инструментов передачи файлов.

Обзор

Если вы создали простую веб-страницу (см. пример в разделе Основы HTML), вы, вероятно, захотите разместить ее в Интернете на веб-сервере. В этой статье мы обсудим, как это сделать, используя различные доступные варианты, такие как клиенты SFTP, RSync и GitHub.

Существует несколько клиентов SFTP. Наша демонстрация охватывает FileZilla, поскольку она бесплатна и доступна для Windows, macOS и Linux. Чтобы установить FileZilla, перейдите на страницу загрузок FileZilla, нажмите большую кнопку «Загрузить», затем выполните установку из установочного файла обычным способом.

Примечание. Конечно, есть много других вариантов. Дополнительную информацию см. в разделе Инструменты публикации.

Откройте приложение FileZilla; вы должны увидеть что-то вроде этого:

Вход

Мы только что открыли учетную запись и получили от них следующую информацию:

Примечание. В зависимости от вашего хостинг-провайдера большую часть времени вы будете видеть страницу, на которой написано что-то вроде "Этот веб-сайт размещен на [Услуге хостинга]". когда вы впервые заходите на свой веб-адрес.

Чтобы подключить SFTP-клиент к удаленному серверу, выполните следующие действия:

  1. Выберите Файл > Диспетчер сайтов в главном меню.
  2. В окне Диспетчер сайтов нажмите кнопку Новый сайт, затем введите название сайта как demozilla в отведенном месте.
  3. Укажите SFTP-сервер, указанный вашим хостом, в поле Хост:.
  4. В раскрывающемся списке Тип входа: выберите Обычный, затем введите предоставленные имя пользователя и пароль в соответствующие поля.
  5. Укажите правильный порт и другую информацию.

Ваше окно должно выглядеть примерно так:

Теперь нажмите Подключить, чтобы подключиться к SFTP-серверу.

Примечание. Убедитесь, что ваш хостинг-провайдер предлагает SFTP-подключение (Secure FTP) к вашему хостинг-пространству.FTP по своей природе небезопасен, и вам не следует его использовать.

После подключения ваш экран должен выглядеть примерно так (мы подключились к нашему собственному примеру, чтобы дать вам представление):

Давайте посмотрим, что вы видите:

  • В центре левой панели вы видите свои локальные файлы. Перейдите в каталог, в котором хранится ваш веб-сайт (например, mdn ).
  • В центре правой панели вы видите удаленные файлы. Мы вошли в наш удаленный корневой каталог FTP (в данном случае users/demozilla )
  • Пока вы можете игнорировать нижнюю и верхнюю панели. Соответственно, это журнал сообщений, показывающий состояние соединения между вашим компьютером и SFTP-сервером, а также живой журнал каждого взаимодействия между вашим SFTP-клиентом и сервером.

Загрузка на сервер

В нашем примере инструкции для хоста говорили нам: "Чтобы опубликовать в Интернете, поместите свои файлы в каталог Public/htdocs". Вам нужно перейти в указанный каталог на правой панели. Этот каталог фактически является корневым каталогом вашего веб-сайта, куда будут помещены файл index.html и другие ресурсы.

После того, как вы нашли правильный удаленный каталог для размещения своих файлов, чтобы загрузить файлы на сервер, вам нужно перетащить их с левой панели на правую панель.

Они действительно онлайн?

И наш сайт работает!

R-синхронизация

Rsync – это инструмент для синхронизации файлов между локальными и удаленными системами, который обычно доступен в большинстве систем на базе Unix (например, в macOS и Linux), но существуют и версии для Windows.

Он считается более продвинутым инструментом, чем SFTP, поскольку по умолчанию используется в командной строке. Базовая команда выглядит так:

  • -options — это тире, за которым следует одна или несколько букв, например, -v для подробных сообщений об ошибках и -b для создания резервных копий. Вы можете увидеть полный список на справочной странице rsync (ищите «Сводка параметров»).
  • ИСТОЧНИК — это путь к локальному файлу или каталогу, из которого вы хотите скопировать файлы.
  • user@ — это учетные данные пользователя на удаленном сервере, на который вы хотите скопировать файлы.
  • x.x.x.x — это IP-адрес удаленного сервера.
  • DESTINATION – это путь к папке, в которую вы хотите скопировать каталог или файлы на удаленном сервере.

Такие сведения необходимо получить у вашего хостинг-провайдера.

Конечно, рекомендуется использовать безопасное соединение, например FTP. В случае Rsync вы указываете данные SSH, чтобы установить соединение через SSH, используя параметр -e. Например:

Более подробные сведения о том, что необходимо, см. в разделе Как копировать файлы с помощью Rsync через SSH.

Инструменты Rsync с графическим интерфейсом

Для Rsync доступны инструменты с графическим интерфейсом (для тех, кому неудобно пользоваться командной строкой). Одним из таких инструментов является Acrosync, который доступен для Windows и macOS.

Опять же, вам нужно будет получить учетные данные для подключения от вашего хостинг-провайдера, но таким образом у вас будет графический интерфейс для их ввода.

GitHub

GitHub позволяет публиковать веб-сайты через страницы GitHub (gh-pages).

Основные принципы использования этой функции мы рассмотрели в статье "Публикация веб-сайта" из нашего руководства "Начало работы в Интернете", поэтому не будем здесь повторяться.

Однако стоит знать, что вы также можете разместить веб-сайт на GitHub, но использовать с ним собственный домен. Подробное руководство см. в разделе Использование личного домена с GitHub Pages.

Другие способы загрузки файлов

Протокол FTP — это один из известных методов публикации веб-сайта, но не единственный. Вот несколько других возможностей:


Это простой, функциональный протокол передачи файлов, который позволяет загружать файлы (односторонняя связь)
Этот конкретный FTP, демонстрируемый ниже, ограничен защитой этого сайта
Однако показанный код ниже не содержит этих ограничений
Загрузка может выполняться только в папку «Загрузки» или в папку «Документы» в демонстрационных целях
Загружаемый файл не может быть файлом PHP, CSS, ASP, JS или XML для защиты site
Этот файл не может быть индексным файлом для защиты сайта
Пароль для FTP ниже — abc

В этой статье мы покажем, как вы можете загружать файлы на свой сервер с вашего собственного веб-сайта.

Это означает, что вы можете не использовать протокол передачи файлов (FTP), такой как filezila или FTP вашего провайдера веб-хостинга, и просто использовать свой веб-сайт.

В буквальном смысле вы можете просто зайти на свой веб-сайт и загрузить файлы на сервер своего веб-сайта, используя свой собственный веб-сайт.

Знайте, что эта форма может использоваться только для загрузки файлов на сервер вашего веб-сайта. Он не может получить файлы с вашего сайта. Вот почему это односторонний FTP. Если вы хотите получать файлы со своего веб-сайта, вам придется использовать полный FTP, такой как filezilla, или FTP вашей веб-хостинговой компании.

Как это делается?

И это относительно просто. PHP имеет функции, позволяющие загружать файлы.

Вы создаете простую форму загрузки файла, используя обычный HTML.

Затем вы можете добавить в форму функциональность PHP, чтобы файлы можно было загружать на сервер вашего веб-сайта и, таким образом, отображать их на вашем веб-сайте.

В PHP есть функция move_uploaded_file(), которая позволяет перемещать загруженный файл в любой каталог на вашем сайте. Если вы загрузите этот загружаемый файл PHP в корневой каталог вашего веб-сайта (каталог, содержащий домашнюю страницу сайта), вы сможете загружать файлы в любой каталог вашего сайта.

Так что ничего сложного. А это дает повышенную эффективность. При загрузке файла вам больше не нужно входить в свою учетную запись хостинга веб-сайта, затем в пространство хостинга, а затем на FTP, предоставленный хостинговой компанией. Вместо этого вы можете просто пропустить все это, если вам нужно загрузить файл и просто сделать это со своего веб-сайта. Это экономит время, может быть более эффективным и позволяет выполнять работу. А с FTP, таким как filezila, если у вас нет собственного компьютера, вы даже не сможете его использовать. Для использования Filezilla необходимо загрузить на компьютер. Если вы, например, на работе, скажем, у вас есть свободное время, и вы хотите загрузить файл на свой веб-сайт, обычно на рабочих компьютерах, вы не можете загрузить какое-либо программное обеспечение. Обычно ИТ-отделы блокируют любую установку программного обеспечения. То же самое верно для любых общедоступных компьютеров, например, в библиотеках или школах. Вам запрещено загружать какие-либо пакеты программного обеспечения, если у вас нет прав администратора. Поэтому, если вы находитесь в таком месте, как библиотека, работа или школа, и у вас есть файлы на флэш-накопителе, в почтовом ящике или в электронной почте, и вы хотите опубликовать их в Интернете, filezilla не может быть использована для этого. Хотя это отличный FTP, если у вас есть ноутбук, он не всегда доступен, если у вас его нет.

Что касается этой формы загрузки файлов, которую мы создаем, она позволяет вам загружать файлы только на ваш сайт. Это не позволяет вам получать файлы, которые уже находятся на вашем сайте. Для этого вам понадобится полный FTP, такой как filezilla, или используйте FTP вашей веб-хостинговой компании.

Однако, опять же, если вы просто хотите загрузить файл на свой веб-сайт, это работает очень хорошо.

Итак, для этой системы загрузки файлов у нас есть кнопка "Выбрать файл", которая позволяет вам указать, какой файл вы хотите загрузить. Затем у нас есть текстовое поле, которое позволяет вам указать, в какой каталог вы хотите загрузить файл. Наконец, у нас есть поле для пароля, которое обеспечивает безопасность этой формы, поэтому, если кто-то найдет эту форму, этот человек не сможет просто загрузить какой-либо файл на ваш сайт.

Добавить текстовое поле для пароля на FTP-сервер практически необходимо, потому что вы хотите защитить свой сайт. Вы должны принять некоторые меры безопасности, чтобы никто не мог просто найти ваш FTP на вашем веб-сайте и загрузить на него все, что им нужно. Очень разумно добавить опцию пароля. Вам нужны некоторые меры безопасности для защиты вашего сайта. Некоторых людей может раздражать необходимость вводить пароль каждый раз, когда они загружают файл на свой веб-сайт, но это стоит того, чтобы кто-то навредил вашему сайту. Только представьте, вы создаете веб-сайт, и у вас есть страницы, загруженные на ваш сайт. Теперь кто-то приходит и загружает те же файлы, что и у вас, перезаписывая эти файлы, и теперь вы потеряли все свои страницы на своем веб-сайте. Хакер может даже загрузить индексный файл и стереть вашу домашнюю страницу. Вот почему так важна безопасность. Один хороший надежный пароль сильно защищает от этого. Однако, если вы решите, что вводить пароль каждый раз, когда вы загружаете файл на свой сайт, слишком раздражает, вы можете увидеть следующий код, который создает FTP, не требующий пароля, по следующей ссылке. : Загрузить форму, не требующую пароля. Вам придется поместить этот FTP под каким-нибудь архаичным именем на своей домашней странице, чтобы его было нелегко найти.

Этот FTP должен быть опубликован в вашей корневой папке на вашем веб-сайте (папка домашней страницы). Это нужно сделать, чтобы вы могли добраться до всех каталогов на вашем сайте. Как работает функция PHP move_uploaded_file(), она принимает текущий каталог, в котором вы находитесь, и вы можете загрузить файл в этот каталог и другие каталоги по этому пути. Таким образом, публикация FTP в вашем корневом каталоге (который содержит домашнюю страницу) позволяет вам получить доступ к любому каталогу на вашем веб-сайте. Так что это лучший способ сделать это.

Итак, вы примерно представляете, как это работает.

Все, что вам нужно сделать, это скопировать все 3 приведенных ниже кода, сохранить их как страницу PHP и опубликовать в корневом каталоге вашего веб-сайта. Прежде чем вы это сделаете, измените пароль на «abc» на что-то более сложное. После этого вы сможете загрузить любой документ в любой каталог на вашем сайте.

Таким образом, это очень простой, простой и очень эффективный способ загрузки файлов на ваш веб-сайт.

Итак, ниже мы рассмотрим код, необходимый для настройки этой формы загрузки файлов.

HTML-код

Итак, ниже мы начнем с HTML-кода, необходимого для создания формы загрузки файла.

Итак, HTML-код, показанный выше, очень прост.

Следующая строка создает кнопку отправки. Поскольку это кнопка загрузки, мы называем ее "Загрузить".

Затем мы закрываем форму.

Это весь необходимый код HTML. HTML просто создает форму загрузки.

Приведенный ниже PHP-код фактически добавляет функциональность форме загрузки, так что она фактически выполняет загрузку.

Код PHP

Есть 2 блока кода PHP, чтобы заставить эту загрузку изображения работать.

Первый и самый большой блок показан ниже.

Очевидно, что это большой блок кода. Мы объясним все это ниже.

Переменная $name хранит имя загружаемого файла. Это включает в себя имя файла плюс его расширение. Таким образом, если вы загружаете файл с именем mortage в формате pdf, в переменной $name будет храниться ипотечный файл.pdf.

В $tmp_name хранится временное имя файла. Когда мы впервые загружаем файл, он не переносится непосредственно в конечный пункт назначения, то есть в папку, в которую мы хотим его перенести. Вместо этого он получает временный. Затем мы должны использовать функцию move_uploaded_file() для передачи файла с использованием временного имени в его конечную папку назначения. Итак, опять же, переменная $tmp_name очень важна для загрузки файла.

Переменная $submitbutton хранит сведения о том, была ли нажата кнопка отправки.

Переменная $where_to_upload принимает введенные данные в то место, куда пользователь хочет загрузить документ, и сохраняет его. На всякий случай, если пользователь ввел ненужный, непреднамеренный пробел, следующая строка стирает все пробелы.

Переменная $password1 принимает введенные пользователем данные в текстовое поле пароля и сохраняет их.

Переменная $password2 — это место, где вы устанавливаете пароль в своем коде. Вы можете установить любой пароль, какой захотите. Очевидно, вы хотите выбрать несколько сложный пароль, чтобы ваш сайт был более безопасным. Вы определенно хотите изменить пароль с «abc» на что-то другое.

Переменная $length хранит длину переменной $name, в которой хранятся имя и расширение загружаемого файла. Причина, по которой мы узнаем длину строки, заключается в том, что мы хотим знать ее длину, чтобы знать позицию последнего символа. Последний символ будет иметь длину строки минус один. Причина, по которой мы это делаем, заключается в том, что мы хотим знать, является ли последний символ «/» или нет. Если это не так, мы добавляем «/» к строке. Если это так, мы оставляем его в покое.

Переменная $first представляет первый символ в строке. Мы хотим увидеть, является ли этот символ «/» или нет. Если да, то удаляем. Если это не так, мы оставляем его в покое.

Мы делаем это, чтобы путь был полностью правильным.

Теперь мы углубимся в суть кода.

Мы используем оператор if, чтобы узнать, установлена ​​ли переменная $name. Другими словами, это означает, что кнопка отправки была нажата.

Если переменная $name пуста, значит, пользователь не указал ни одного файла в загрузке. Поэтому мы выводим утверждение «Пожалуйста, выберите файл».

Если переменная $name не пуста и пароль, введенный пользователем, совпадает с паролем, который вы установили в коде PHP, то файл загружается с использованием временного имени, которое вы указали в текстовом поле "куда загружать".< /p>

Иначе, если введен неверный пароль, выводится сообщение "Введен неверный пароль. Файл не загружен".

На этом первый блок кода PHP завершен.

Второй блок кода PHP показан ниже.

Таким образом, этот блок кода PHP намного меньше.

Если $name не пусто и введенный пароль правильный, выводится заявление: "Файл, который вы загрузили, показан ниже". Ссылка на файл будет показана ниже.

Один минус, который на самом деле даже не считается минусом, который можно увидеть в этом, заключается в том, что каждый раз, когда вы загружаете файл, вы должны вводить свой пароль. Используя FTP, такой как filezilla или тот, который предоставляется вашей веб-хостинговой компанией, после входа в систему вам не нужно каждый раз вводить пароль для входа. Но это небольшой минус, потому что это всего лишь пароль, и вы можете автоматически сохранить его с помощью веб-браузера, поэтому вам действительно не нужно вводить его каждый раз.

Итак, это все, что необходимо для загрузки файлов на ваш веб-сайт с помощью вашего собственного веб-сайта.

В этом процессе мы хотим автоматизировать процесс, при котором файлы загружаются на удаленный сервер, как только они попадают в указанную папку/каталог на вашем FTP-сервере или FTP-сайте. Эти файлы могут поступать из разных бизнес-процессов или систем в вашей локальной ИТ-среде, и их необходимо переслать торговому партнеру или бизнес-подразделению. Или это могут быть удаленные файлы, поступающие при загрузке по FTP, что может потребовать синхронизации.

Теперь давайте пройдемся по шагам, чтобы применить к этому процессу функции автоматизации рабочего процесса JAPE без написания сценариев.

1. Создайте монитор каталога для обнаружения файлов, добавленных в назначенный каталог

Во-первых, нам нужен способ автоматического определения того, что файлы/документы прибыли в рассматриваемый каталог. Для этого мы создаем так называемый монитор каталогов. Этот монитор каталога должен быть настроен для отслеживания добавляемых файлов в указанный каталог.

Чтобы создать монитор каталога, перейдите в модуль «Мониторы каталога» и нажмите кнопку «Добавить».

После этого вам будет предложено ввести параметры монитора каталогов. Дайте монитору каталога имя (например, «Файл монитора добавлен для компании ABC») и выберите конкретный каталог, который вы хотите отслеживать.

Убедитесь, что установлен флажок "Контролировать добавление файла".

Как только вы закончите, нажмите кнопку OK, чтобы продолжить.

Когда вы вернетесь на главный экран, вы должны увидеть только что созданный монитор каталога на вкладке «Мониторы каталога».

Монитор каталога, который вы только что создали, вызовет событие типа "Добавлен файл монитора каталога", как только файл будет добавлен в каталог. Обратите внимание, что каждый файл, добавленный в каталог, вызовет один экземпляр указанного события. Таким образом, если добавить пять имен файлов, то впоследствии будет запущено пять таких событий. Следующее, что нам нужно сделать, это создать триггер, который будет реагировать на эти события.

2. Добавьте триггер, реагирующий на тип события «Добавлен файл монитора каталога»

Перейдите в модуль "Триггеры" и нажмите кнопку "Добавить".

После этого вам будет предложено выбрать шаблон триггера. Пока не будем ничего выбирать, а просто нажмем кнопку ОК.

Когда вас попросят указать параметры триггера, дайте триггеру описательное имя (например, «Загрузить в компанию ABC») и выберите тип события «Добавлен файл монитора каталога».Нажмите «Далее», чтобы продолжить.

Поскольку вы также можете отслеживать несколько других каталогов, вам нужно настроить этот триггер так, чтобы он реагировал только на определенный монитор каталогов. В нашем случае это будет монитор с именем «Файл монитора добавлен для компании ABC».

Для этого просто создайте следующее выражение с помощью построителя выражений:

MonitorName = "имя_каталога_монитора"

Где name_of_directory_monitor следует заменить именем вашего монитора каталога. В нашем случае это будет «Файл монитора добавлен для компании ABC».

Нажмите "Далее", чтобы продолжить.

3. Добавьте триггерное действие для загрузки недавно добавленных файлов на удаленный сервер

Теперь давайте перейдем к последней части этого процесса. Это часть, которая загружает файлы на удаленный сервер через SSH FTP-соединение или подобное.

Нажмите кнопку "Добавить", чтобы добавить триггерное действие.

Если вы прокрутите список триггерных действий вниз, вы заметите, что в вашем распоряжении есть несколько триггерных действий "загрузка файла". Вы можете загружать файлы на различные серверы передачи файлов, включая FTP, FTPS, SCP, WebDAV и т. д., а также на объекты торговых партнеров. В этом примере мы просто выберем триггерное действие «Загрузка файла SFTP», которое загрузит наши файлы на удаленный сервер SFTP.

Нажмите "ОК", чтобы продолжить.

Введите соответствующие сведения об удаленном SFTP-сервере. Наиболее часто используемые параметры включают имя хоста/IP-адрес, номер порта (обычно 22 для SFTP), имя пользователя и пароль.

Вам также необходимо указать локальный файл, который вы хотите загрузить. Поскольку мы хотим загружать каждый файл, который добавляется в отслеживаемый каталог или подпапку, лучший способ сделать это — использовать переменную %File%. Значением переменной %File% в этом конкретном контексте является локальный путь к файлу, недавно добавленному в каталог.

Если в каталог добавлено несколько файлов, значение переменной %File% изменится. Каждый экземпляр события Directory Monitor File Added будет соответственно иметь собственное значение переменной %File%.

Наконец, вы можете указать удаленный каталог, в который будут загружены файлы. В нашем случае мы просто использовали косую черту (/), чтобы указать, что мы хотим, чтобы файлы загружались в корневой каталог учетной записи удаленного пользователя.

Когда закончите, нажмите OK.

Заполните блок-схему триггерного действия, перетащив стрелку из вывода «Начать» узла «Рабочий процесс» на вход «Выполнить» узла «Загрузка файла SFTP».

Вот и все. После того, как вы нажмете последующие кнопки OK и вернетесь на главный экран, вы закончите настройку сервера JAPE MFT, чтобы он автоматически загружал файлы на удаленный сервер.

Получить бесплатную пробную версию

Хотели бы вы попробовать это сами? Сервер JAPE MFT не зависит от платформы и может быть установлен в Microsoft Windows, Linux, Mac OS X и Solaris и может обрабатывать любой протокол передачи файлов, а также несколько протоколов с одного сервера. Кроме того, JAPE позволяет работать с файлами любого типа, включая пакетные файлы и XML. Загрузите бесплатную 7-дневную пробную версию сервера JAPE MFT прямо сейчас.

Читайте также: