Преобразование файлов TIFF в JPG от PHP - PullRequest
0 голосов
/ 30 июня 2010

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

#!/usr/bin/perl

opendir(DIR, $ARGV[0]);
@files = readdir(DIR);
closedir(DIR);

foreach $file (@files){
 if($file =~ /(.*?)\.tif/){
  print "converting $file\n";
  `convert -auto-level  -depth 12 -type grayscale $ARGV[0]$file $ARGV[1]$1.jpg`;
 }
}

Но это никогда не входит в цикл for, потому что opendir не работает. Папка существует.

я вызываю это exec ("perl test.pl arg1 arg2"); в php

Это то, как я должен делать это, потому что это не работает?

Также я дал почти все, что нужно для доступа или записи в chmod 777

спасибо

1 Ответ

6 голосов
/ 30 июня 2010

Прежде всего, вы должны всегда иметь эти две строки в каждом скрипте и модуле:

use strict;
use warnings;

Эти строки дадут вам много ошибок и подсказок, которые скажут вам, что выотсутствуют.

Во-вторых, вам нужно проверить возвращаемое значение команды opendir, так как она возвращает ошибку, если не удалось открыть каталог (например, если он не существует).Переменная $! содержит самое последнее сообщение об ошибке.Если вы напечатаете точное имя файла в сообщении об ошибке, которое пытались открыть, вы увидите, неверна ли спецификация вашего файла:

opendir (my $dir, $ARGV[0]) or die "Cannot open $ARGV[0]: $!";
my @files = readdir($dir);
closedir($dir);

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

Спецификации для команды opendir находятся в perldoc -f opendir .Вы можете прочитать о специальных переменных в perldoc perlvar .

...