Portál AbcLinuxu, 11. května 2025 23:59

Dotaz: upload suboru - cgi

12.12.2005 23:18 dusan456 | skóre: 12 | Poprad
upload suboru - cgi
Přečteno: 234×
Odpovědět | Admin
Potrebujem vyriešiť upload obrázka a hneď jeho resize.
Najvodnejšie, myslím resiznuť by bolo programom convert, ale upload poznám len v php.
Môj problem je následovný:
1. Neviem nastaviť v Apache, možnosť iba pre určitú subdoménu povoliť exec, keď je globálne zakázaná v php.ini a urobiť to všetko v php. Zápis php_admin_value enable_functions "exec, shell_exec" v prislušnej "Directory" mi nefunguje
2. Myslel som, že to potom urobím komplet všetko cgi scriptom, najlebšie v bashi, ale neviem, ako na upload obrázka.
3. Hľadal som aj v perle, ale nič na upload som nenašiel.
Vopred ďakujem za info.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.12.2005 11:04 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: upload suboru - cgi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud chceš použít php, tak v něm použij gd.
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
13.12.2005 22:46 dusan456 | skóre: 12 | Poprad
Rozbalit Rozbalit vše Re: upload suboru - cgi
GD knižnicu nechcem veľmi inštalovať, lebo zatial všetko ide a nerád by som niečo pokazil
Skôr ma zaujímalo, ako uploadnuť obrázok shellovým skriptom. Neviem, či to je možné (nie cez ftp + heslo). Čo sa týka nastavenia Apache, z viacerých zdrojov som sa dozvedel, že disable_functions nie je možné meniť pre každý VHost extra, ale iba globálne v php.ini
Pravdepodobne to ale urobím takto:
test.php
$fp = FOpen("http://127.0.0.1/cgi-bin/test.pl?parametre", "r");

a test.pl
if [ $REMOTE_ADDR != "127.0.0.1" ]
then
exit;
fi
#tu príde všetko, čo treba urobiť
convert -geometry 10% .....parametre
13.12.2005 23:57 hudin | skóre: 7
Rozbalit Rozbalit vše Re: upload suboru - cgi
Odpovědět | | Sbalit | Link | Blokovat | Admin
3. Hľadal som aj v perle, ale nič na upload som nenašiel.
Vopred ďakujem za info.
Tak to jste hledal spatne, viz perldoc CGI, hledejte upload, filefield. uvedu jen relevantni casti prvni stranka pro formular s "fileupload"
use CGI;
my $cgi = new CGI;
print $cgi->start_multipart_form(-method=>"post", -action=>"./upload.cgi"),
    $cgi->filefield(-name=>"file"),
    $cgi->end_form;
zpracovani se provede jako prace s filedescriptorem, napr. takto se ulozi do /tmp/file.<cislo_procesu>
use CGI;
my $cgi = new CGI;
my $fh = $cgi->upload("file");
my $tmpfile = "/tmp/file.$$";
open(W, ">$tmpfile");
print W <$fh>;
close(W);
urcite chcete provadet nejdrive kontrolu platnosti $fh neprepisovat existujici ... ;-) nakonec si zavolate convert
`convert <vase_parametry>`
a pokud jste neudelal zadny vystup, ted reknete spravne hlavicky a vrati upraveny soubor

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.