2014-11-04 5 views
0

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

#!/usr/bin/perl use CGI qw(:standard); 
#use strict; 

my $cgi   = new CGI; 
my $upload_dir = '/home/...'; 

my $max_files = 3; #maximum number of files allowed. 
print $cgi->header(-type => 'text/html'); 
for (my $count = 1; $count <= $max_files; $count++){ 
    my $filen = "file".$count; 
    my $file  = $cgi->param($filen); 
    my $filename = $file; 
    $filename =~ s/^.*(\\|\/)//g; 

    if($file) 
    { 
     open(OUT, ">$upload_dir/$filename") || die print "Fail to upload: $!"; 
     while(<$file>) { 
      print OUT; 
     } 
     close(OUT); 
    } 
} 

print "File(s) Uploaded\n"; 

print qq~ 
     <HTML> 
     <head></head> 
     <body> 
     <h1> 
     <img src="path/to/myimage"> 
     My Name is blabla. 
     </h1> 
     </body> 
     </HTML> ~; 

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

+3

Пожалуйста, используйте правильное форматирование кода для своих кодовых блоков. Вы можете сделать это, выделив весь блок и щелкнув значок '{}' в редакторе, или отступом каждой строки на четыре пробела. – ThisSuitIsBlackNot

+0

Где, собственно, на сервере вы загружаете файл изображения? Вы уверены, что он где-то доступен для веб-сервера? Какой именно URL вы используете для изображения? Все ли написано в журнале ошибок веб-сервера? Вы должны увидеть сообщение о том, какой файл он не смог найти. –

+0

Некоторые из [обсуждение здесь] (http://stackoverflow.com/questions/26614013/images-on-cgi-or-html-files/26631616) могут быть полезны. –

ответ

0

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

Так единственная проблема может быть

<img src="path/to/myimage"> 

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

Нота myimage 'не имя файла, который вы написали в скрипте, так что это не сработает.

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

«путь/в /», поскольку путь не может быть указанным вами путем, вы храните его в '/ home/...' (где бы это ни было точно) и получить к нему доступ по пути сценария , Поэтому прямо сейчас он должен искать подкаталог «путь/к» и файл «myimage».

Попробуйте указать абсолютный путь (/ home/user/image_directory/file1) или относительный путь из пути сценария (../image_directory/file1).

Успехов

Из-за отсутствия репутации, я не могу комментировать:/

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

Вы проверяли разрешения на каталог и файлы? Могут ли они быть прочитаны?

Чтобы выполнить двойную проверку, попробуйте получить доступ к другому изображению на том же пути или другому изображению на другом пути и т. Д. html точно не говорит вам о том, почему он не загружается, поэтому вы должны экспериментировать.

+0

Спасибо за ваш вклад. Сам путь работает, но все, что я вижу, это всего лишь X на странице. Никакое изображение не появляется. – UserFriendly

+0

«Путь работает» также означает «загруженный файл изображения в порядке»? В противном случае вам может понадобиться binmode при записи, хотя afaik в основном в windows [binmode] (http://perldoc.perl.org/functions/binmode.html) – bytepusher

Смежные вопросы