Я только что написал (на Perl) простой веб-сервис, который отображает веб-форму, содержащую одно поле загрузки типа «файл» и одну кнопку «Отправить». Я сделал эту простую веб-страницу с намерением, чтобы человек мог использовать ее, а также чтобы сценарий на другом компьютере мог также выполнять его программно. Я получил человеческую часть, все было сделано и протестировано, и теперь я только что понял, что понятия не имею, как создать URL на второй машине, которая успешно выполняет этот скрипт cgi на первой машине (и получает файл, загруженный со второй машины на первая машина).
У меня есть некоторый опыт создания URL, которые содержат поля формы, но я никогда раньше не использовал поле ввода типа «file» для загрузки, поэтому я немного с этим борюсь. Может быть, я использую это неправильно.
Если мой простой веб-сервис представляет собой скрипт cgi-bin с именем «myscript.pl» и если поле загрузки файла называется «uploadthis» и если файл на втором компьютере, который я хочу загрузить программным способом, находится в «C» : \ myfile.txt ", тогда я не смогу просто создать URL в скрипте на втором компьютере вида" http://machine1/cgi-bin/myscript.pl?uploadthis=C:\myfile.txt", и этот файл загружается программно, как если бы человек нажал на кнопку просмотра в веб-форме вручную, выберите этот файл и нажмите кнопку «Отправить»?
Работает нормально, когда я запускаю форму сценария cgi на первом компьютере, просматриваю файл и нажимаю Submit. Кажется, что файл загружен веб-браузером просто отлично. Но когда я ввожу вышеупомянутый URL-адрес в свой браузер, чтобы проверить URL-адрес загрузки файла вручную, прежде чем я запрограммирую этот URL-адрес в сценарий на другом компьютере, загружаемый файл будет файлом нулевой длины. Он создает файл, но он полностью пуст. Те же результаты, если я использую известное неверное имя файла, например "http://machine1/cgi-bin/myscript.pl?uploadthis=C:\myfilethatdoesntexist.txt". Что я делаю не так?
Я пытаюсь выполнить эту задачу на нескольких компьютерах с Windows XP с Apache 2.2 и ActivePerl 5.10.0, а метод формы - "post".