2011-10-02 10 views
1

스크립트가 잘 작동 작동하지 않는,하지만 FTP 코드는 XLS를 업로드하지만, 0 바이트로 업로드 만하면 전에 다음 코드의에서 FTP 코드의 존재, FTP 작품 좋아, 코드에서 오류가 무엇펄 FTP

, my $worksheet = $workbook->add_worksheet('TestRPT Report');

#!/usr/bin/perl 
use strict; 
use warnings; 
use DBI; 
use Spreadsheet::WriteExcel; 
use POSIX qw(strftime); 


my $CurTimeStamp=time; 
my $LastSunTimestamp=($CurTimeStamp - 168*60*60); 
my $row; 
my $PinNumber; 
my $PinAmount; 
my $get_date; 
my $get_time; 
my $get_time_stamp; 
my $DoFTPFlg = "yes"; 


# Create a new workbook and add a worksheet. 
my $workbook = Spreadsheet::WriteExcel->new('TestRPT.xls'); 
my $worksheet = $workbook->add_worksheet('TestRPT Report'); 


# Write some text. in write function First Argument for ROW, Second Argument for COLUMN, Third Argument for Title/Text to display 
$worksheet->write(0, 0, 'val1'); 
$worksheet->write(0, 1, 'val2'); 
$worksheet->write(0, 2, 'val3'); 
$worksheet->write(0, 3, 'val4'); 
my $cnt = 1; 
    $get_time_stamp = time; 
    $get_date = strftime("%m/%d/%y",localtime($get_time_stamp)); 
    $get_time = strftime("%H:%M",localtime($get_time_stamp)); 
    # Write some numbers. 
    $worksheet->write($cnt, 0, "val1");   
    $worksheet->write($cnt, 1, "val2");  
    $worksheet->write($cnt, 2, "val3"); 
    $worksheet->write($cnt, 3, "val4"); 




if ($DoFTPFlg eq "yes") { 
    print "DO FTP"; 
    use Net::FTP; 
    my $ftp; 
    $ftp = Net::FTP->new("mysite.in", Debug => 0); 
    $ftp->login("user",'pass'); 
    $ftp->cwd("/www/"); 
    $ftp->put("TestRPT.xls"); 
    $ftp->quit; 

} 
+0

내 문제가 해결되어 $ workbook-> close()가 추가되지 않았습니다. 장소의 끝에서 내 ftp 코드 앞에 –

답변

3

my $workbook = Spreadsheet::WriteExcel->new('TestRPT.xls'); 당신이해야 close 당신의 $workbook 오브젝트 파일에 아무것도 할 시도하기 전에. documentation에서

: 파일이 같은, 그것을 복사 크기를 읽거나 이메일에 첨부로에 일부 외부 작업을 수행하기 전에 닫아야합니다 경우

명시 적 닫기()가 필요합니다.

1

코드를 약간 수정 해보십시오. 대신

$ftp->put("TestRPT.xls"); 

www 디렉토리에있는 다른 파일을 만들고 그 파일을 ftp를하려고합니다.

$ftp->put("TestRPT.xls"); 

따라서, 코드에서 유일하게 변화가 FTP'd되는 파일의 이름입니다 :이 파일은 test.txt을 호출하면, 당신의 라인을 변경합니다. FTP가 작동하는 경우 문제는 FTP가 아닌 Spreadsheet::WriteExcel 모듈을 사용합니다. Mat에 이미 명시된 바와 같이, 객체에 명시적인 close을 수행해야합니다.

FTP가 작동하지 않으면 FTP 통화와 관련된 문제 일 수 있습니다 (문제는 아니지만).