2015-02-20 3 views
-2

Я пытаюсь прочитать файл в PERL с помощью ActiveX Control. Мне удалось прочитать файл с помощью элементов управления ActiveX в HTML. Поэтому я изменил код HTML на PERL cgi, используя заявление «Печать». После этого я не могу прочитать файл с помощью ActiveX, другие функции JavaScript работают хорошо.Чтение файла в PERL с помощью ActiveX

print "<script src='/EnvelopeUtility/EnvelopeJS.js'></script>"; 

Выше строка кода используется для вызова внешнего JavaScript.

print "<td><input type='button' name='btn1' value='Process' onClick='getData(document.getElementById('sampleFile').value)'></td>"; 

Над строкой кода является кнопка в HTML, который OnClick вызывает метод GetData JavaScript()

var obj = new ActiveXObject('Scripting.FileSystemObject'); 

Над строкой кода присутствует во внешнем JavaScript, который создает объект ActiveX, чтобы прочитать файл.

readFile = obj.OpenTextFile(path, 1, false); 
       while(!readFile.AtEndOfStream) 
       { 
     readFile = obj.OpenTextFile(path, 1, false); 
................. 

Над строкой кода является та, которая считывает строку строки строки.

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

+0

Доступен ли файл для пользователя, который запускает веб-сервер? – choroba

+0

Вы создаете HTML, используя Perl/CGI. Браузер по-прежнему получает HTML. От POV от браузера нет никакой разницы от загрузки статического файла HTML с сервера и загрузки динамически сгенерированного с использованием Perl/CGI. Какова бы ни была проблема, вы неправильно определили причину. – Quentin

+0

[Нет такой вещи, как PERL] (http://perldoc.perl.org/perlfaq1.html#What's-the-difference-between-%22perl%22-and-%22Perl%22%3f) – Quentin

ответ

0

У вас простая HTML-ошибка.

onClick='getData(document.getElementById('sampleFile').value)' 

Ваше значение атрибута ограниченно ' символов, но вы пытаетесь использовать буквенные символы ' в качестве исходных данных внутри атрибута.

Следовательно, значение атрибута становится getData(document.getElementById( который не является действительным.

Это было бы выбрано, если бы вы использовали validator.

Если вы хотите использовать ' как данные в значении атрибута, разделенного ', тогда вы должны представить его как &#39;.

+0

«sampleFile» в приведенном выше случае - это идентификатор Итак, в этом случае, как мне передать вход в javascript? – Babu

+0

@Babu - Предполагая, что вы хотите использовать нестандартный подход ActiveX, который вы принимали до ... вы исправляете ошибки синтаксиса в своем HTML, как описано в последнем предложении этого ответа. – Quentin

+0

Спасибо. это сработало – Babu