Address: http://man.chinacode.com/perl/cgi2.htm
Title: PerlÖÐÎÄÊÖ²á  •  Size: 5316  •  Last Modified: Sun, 11 Jun 2006 06:54:10 GMT
¡¡

Perl 5½Ì³Ì
by chinacode

Ŀ¼

µÚÒ»²¿·Ö PerlÓïÑÔ

µÚÒ»Õ ¸ÅÊö

µÚ¶þÕ ¼òµ¥±äÁ¿

µÚÈýÕÂ ²Ù×÷·û

µÚËÄÕ ÁбíºÍÊý×é±äÁ¿

µÚÎåÕ Îļþ¶Áд

µÚÁùÕ ģʽƥÅä

µÚÆßÕ ¿ØÖƽṹ

µÚ°ËÕ ×Ó³ÌÐò

µÚ¾ÅÕ ¹ØÁªÊý×é(¹þÏ£±í)

µÚʮՠ¸ñʽ»¯Êä³ö

µÚʮһÕ Îļþϵͳ

µÚÊ®¶þÕÂ ÒýÓÃ(Ö¸Õë)

µÚÊ®ÈýÕÂ ÃæÏò¶ÔÏó±à³Ì

µÚÊ®ËÄÕ °üºÍÄ£¿é

¸½Â¼Ò» º¯Êý¼¯

µÚ¶þ²¿·Ö PerlµÄCGIÓ¦ÓÃ

µÚÒ»ÕÂ cgilibÀý

µÚ¶þÕ ¶¯Ì¬´´½¨Í¼Ïñ

µÚÈýÕ ¼ÆÊýÆ÷µÄ±àд·½·¨

µÚËÄÕÂ Web ServerÉèÖÃ

µÚÎåÕ¡¢...
¡¡

µÚ¶þÕ ¶¯Ì¬´´½¨Í¼Ïó(䶨¸å)

by chinacode


    ¡°¶¯Ì¬Îĵµ¡±²»½öÖ¸Îı¾£¬CGI³ÌÐò¿ÉÒÔ´´½¨Í¼Ïó¡¢ÉùÒôµÈ¸÷ÖÖýÌå¡£ÄãÖ»ÐëÊä³öÏàÓ¦µÄMIMEÍ·¡¢Ò»ÐпÕÐм°Ô­Ê¼Êý¾Ý¼´¿É¡£
    ÏÂÀýµÄimage.cgi½«×°ÔØÒ»¸öGIFͼÏñÎļþ²¢Ë͵½ä¯ÀÀÆ÷ÏÔʾ£º
#!/usr/bin/perl

$file = '/usr/local/etc/httpd/htdocs/images/picture.gif';

print "Content-Type: image/gif\n\n";
open(GIF,"<$file") || die "Can't open GIF\n";
while (read(GIF,$buffer,16384)) {
   print $buffer;
}
    image.cgiÊ×ÏÈ·¢ËÍMIMEͷ˵Ã÷(Content-Type)£¬È»ºó¶ÁÈ¡ÎļþÄÚÈݲ¢Êä³ö¡£Õâ¶Î³ÌÐò¶Ô$file±äÁ¿ºÍContent-TypeÀàÐÍÂÔ¼ÓÐ޸ľͿÉÒÔ·¢ËÍÉùÒô»òÓ°ÏñÎļþ¡£
    ÄÇôÔõÑù°ÑCGI³ÌÐò´´½¨µÄͼÏñǶµ½Ò³ÃæÖÐÄØ£¿SSIÊDz»Ðе쬷½·¨ÊÇÓÃ<img>±êÇ©£¬Óï·¨È磺
    <img src="/cgi-bin/image.cgi">
    ½ö¾ÍÏÔʾpicture.gifÕâ·ùͼÏñ¶øÑÔ£¬ÓÃÉÏÊöµÄimage.cgiÊÇûÓÐʲôÒâÒåµÄ£¬¸üÇ¡µ±µÄ·½Ê½ÊÇÕâÑùʹÓãº
    <img src="/images/picture.gif">
    µ«ÊÇ£¬image.cgi¿ÉÒÔÀ©Õ¹¹¦ÄÜÀ´×ö¸ü¶àµÄÊ¡£ÀýÈçËü¿ÉÒÔ´Ó¶à¸öͼÏñÎļþÖÐËæ¼´µØÑ¡ÔñÒ»¸öÀ´ÏÔʾ£¬ÄÇô£¬Ã¿Ò»´Î·ÃÎʸÃÒ³ÃæÊ±¶¼»á³öÏÖ²»Í¬µÄͼÏñ¡£
    ¼ÆÊýÆ÷³ÌÐòͨ³£ÀûÓÃ<img>±êÇ©µÄÕâÒ»ÌØÐÔ£¬ÓÈÆäÊÇÄÇЩ²»ÔÊÐí½âÎöHTMLºÍSSIµÄ·þÎñÆ÷ÌØ±ðʵÓ᣷þÎñÆ÷¶Ë²»½âÎöHTMLÎļþ¿ÉÒÔ½µµÍ·þÎñÆ÷µÄ¸ºÔØ¡£
    ´ËÍ⣬³ýÁ˼òµ¥µÄ×°ÔØ²¢ÏÔʾÒÑÓеÄͼÏñÎļþÍ⣬¿ÉÒÔÕæÕýµÄ¶¯Ì¬Éú³ÉËùÐèµÄͼÏñ¡£Äã¿ÉÒÔÉè¼ÆÒ»¸öCGI³ÌÐò¸ù¾Ý²»Í¬µÄ²ÎÊý¼°Óû§¶¨ÒåµÄһЩϸ½ÚÀ´ÊµÊ±´´½¨ÏàÓ¦µÄͼÏñ£¨Èçͼ±í£©²¢ÏÔʾ¡£ÕâÖÖ³ÌÐòµÄ¸´ÔÓÐÔÔÚÓÚͼÏñµÄÉú³É¶ø²»ÔÚÓÚ½«Í¼ÏñÊä³ö¸øä¯ÀÀÆ÷¡£ÐÒÔ˵ÄÊÇ£¬ÓÐһЩ¿âÌṩÁËÕâÑùµÄ½Ó¿Ú£¬ÈçThomas boutellµÄgdͼÏñ¿â£¬ÕâÊÇÉú³ÉGIFͼÏñµÄÒ»¸ö³öÉ«¹¤¾ß£¬¿ÉÒÔ´Óhttp://www.boutell.com/gdÀ´ÏÂÔØ¡£ËüÊÇÓÃCÓïÑÔдµÄ£¬µ«ÊÇÓÐPerl½Ó¿Ú¿âgd.pm£¬»¹ÓлùÓÚgdÖ§³Ö¶àÖÖÓïÑԵĽӿڿâtgdºÍfly¡£ÏêϸÇé¿ö¼ûÉÏÊögdÖ÷Ò³¡£
    ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÓÃλͼ¶¯Ì¬Éú³ÉͼÏñµÄ¼ÆÊýÆ÷³ÌÐò£¬¶ÔÀí½âÉÏÊöÃèÊöÓ¦¸Ã»áÓÐËù°ïÖú¡££¨Ô´´úÂëÏÂÔØ£©
    ÄúÊǵÚλ·ÃÎʱ¾ÍøÒ³µÄÈË¡£

¸½£ºGIFµÄ˵Ã÷
    ÏÖÔÚÁ÷ÐÐ×ÅÒ»ÖÖÇ÷ÊÆ£¬¼´Ô¶ÀëGIF¸ñʽ¶ø²ÉÓÃPortable Network Graphic¸ñʽ(PNG)£¬ÕâÖֱ仯³öÓÚ¼¼ÊõºÍ·¨ÂÉÁ½¸ö·½ÃæµÄ¿¼ÂÇ¡£1995Äê1ÔÂ1ÈÕ£¬UnisysÉù³ÆËûÃÇÓÐȨҪÇóʹÓÃLZWѹËõËã·¨µÄÈí¼þ¹«Ë¾Òª¾­¹ýËûÃǵÄÐí¿É»ò¸¶¸øËûÃDZ¨³ê£¬ÒòΪËûÃÇÓµÓÐרÀûʹÓÃȨ¡£¶øGIF¸ñʽÕýÊÇʹÓÃÕâÖÖËã·¨¡£ËùÒÔ£¬ÄãËù±àдµÄÈκÎÓÃÓÚÉÌÒµÓ¦ÓóÌÐòÖеÄGIFͼÏñ£¨°üÀ¨ÒÔCGI/WWWΪ»ù´¡µÄÄÇЩÎļþ£©£¬¶¼±ØÐ빺ÂòÐí¿ÉÖ¤»òÖ§¸¶·ÑÓá£Ðí¶àÈí¼þ°ü²»ÔÙѹËõGIFÎļþ£¨ÕâÑù»áʹͼÏñ±äµÃºÜ´ó£©£¬»òÕß°ÑGIFÎļþ¼°ÆäÖ§³ÖÈí¼þÈ«²¿È¥µô¡£PNGʹÓ÷ÇרÀûµÄѹËõËã·¨£¬´Ó¶ø±ÜÃâÁËÕâЩÂé·³¡£ÔÚ¼¼Êõ·½Ã棬PNGÌṩÁ˽ϺõÄѹËõËã·¨£¨ÎÞËðʧ£¬ÏñGIFÒ»Ñù£¬µ«²»ÏñJPEG¡£JPEGÔÚѹËõʱ»á¶ªÊ§Êý¾Ý£©¡¢¶þά½»»¥ÒÔ¼°24λºÍ48Î»Õæ²ÊÖ§³Ö¡£ÏÖÔÚ£¬ºÜÉÙÓÐä¯ÀÀÆ÷Ö§³ÖÄÚ²åµÄPNGͼÏñ£¬µ«²»¾ÃµÄ½«À´£¬ÕâÖÖÇé¿öºÜ¿ÉÄÜ»á¸Ä±ä¡£GDͼÐοâÎļþ˵Ã÷ÁËPNGÖ§³Ö¼´½«À´ÁÙ¡£

ÉÏÒ»Õ ÏÂÒ»Õ Ŀ¼