Забавно. Так не работает: open ( SRC, $imagename) || die print("Cannot Open File $imagename");; binmode (SRC) || die print("Cannot Bin Open File"); @imgdata=; close(SRC); open(DST,">$name") || die print("Cannot Open File $!"); binmode(DST); foreach $istring (@imgdata) { print DST $istring; } close(DST);
Так тоже не работает: while ($bytesread=read($imagename,$buffer,1024)) { print DST $buffer; }
А вот так почему-то работает open (DST,">$name") || die print "Cannt open dst file: $!"; binmode(DST) || die print "cannt binmode DST"; print DST while (<$imagename>); close(DST);
Теперь мне интересно ПОЧЕМУ?
PS. не print cwd а вот так: $path=getcwd(); print path; Все равно помогло, спасибо.
На самом деле это для того, чтобы можно было загружать файлы из папки Мои Документы. Я пробовал чисто латинские файлы, строчку с перикодировкой вообще убирал - та же фигня. А что может быть с локалью?
Есть такой скриптик. Локально на IIS под виндой все работает, а вот при загрузке к провайдеру на может открыть локальный файл (затыкается на строке: open ( SRC, $imagename) || die print("Cannot Open File $imagename"); Где я наглючил?
sub upload { ($imagename)=@_; $imagename=~m/^.*(\\\\|\\/)(.*)/; $imagename =~tr/бвчздецъйклмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС?/АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё/; my $name = $2; open ( SRC, $imagename) || die print("Cannot Open File $imagename");; binmode (SRC) || die print("Cannot Bin Open File"); @imgdata=; close(SRC); open(DST,">$name") || die print("Cannot BinOpen File"); binmode(DST); foreach $istring (@imgdata) { print DST $istring; } close(DST); print" uploaded: $name "; }