Coldfusion8 - Распаковка файлов GZ с использованием Coldfusion 8 - PullRequest
2 голосов
/ 31 марта 2011

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

Я обнаружил CFX_Gzip.dll из Adobe Coldfusion Exchange.Кто-нибудь знает, где я положил файл DLL?Это может быть в папке CF8 / lib /, но я не уверен.

Я использую Coldfusion8.Если есть другой распаковщик gzip, который я должен использовать, я был бы рад, если бы он был более свежим.Этот старый и веб-сайт от человека, который написал его, больше не существует.Нет документации с ним.

Ответы [ 3 ]

6 голосов
/ 31 марта 2011

Нет необходимости в DLL с CF8, используйте существующую библиотеку Java. Взгляните на CFLib или попробуйте следующий код:

<cfscript>
try{
    /* Set inoutput */
    gzFileName = "myFile.gz";
    outputFile = "mygzFiles";

    /* Initialize gzip */
    var outStream = CreateObject("java","java.io.FileOutputStream");
    var inStream = CreateObject("java","java.io.FileInputStream");
    var inGzipStream = CreateObject("java","java.util.zip.GZIPInputStream");

    outStream.init(outputFile);
    inStream.init(arguments.gzipFilePath);

    inGzipStream.init(instance.ioInput);

    while(l GTE 0){
        outStream.write(buffer, 0, l);
        l = inGzipStream.read(buffer);
    }

    /* Close the GZip file */
    inGzipStream.close();
    inStream.close();
    outStream.ioOutput.close();

} catch(Any){}
</cfscript>
1 голос
/ 31 марта 2011

Возможно, не самое элегантное решение, но, похоже, подходит для моих простых тестовых случаев:

<cfscript>

    inputFile = "/tmp/test.txt.gz";
    outputFile = "/tmp/test.txt";

    ioInput = CreateObject("java","java.io.FileInputStream");
    gzInput = CreateObject("java","java.util.zip.GZIPInputStream");
    ioOutput = CreateObject("java","java.io.FileOutputStream");

    ioInput.init(inputFile);
    gzInput.init(ioInput);
    ioOutput.init(outputFile);

    line = 0;
    buffer = RepeatString(" ", 1024).getBytes();

    while (line GTE 0) {
        ioOutput.write(buffer, 0, line);
        line = gzInput.read(buffer);
    }

    gzInput.close();
    ioInput.close();
    ioOutput.close();

</cfscript>
1 голос
/ 31 марта 2011

Вы можете использовать немного java для обработки файлов gzip http://www.cflib.org/udf/gzip

...