2009-06-12 22 views
5

Nếu có, bạn có thể cung cấp mã. Tôi có thể làm hầu hết mọi thứ khác từ việc tạo trang mới, sửa đổi thuộc tính trang, v.v. Nhưng tôi dường như không thể thêm tệp đính kèm. Tôi đã đọc chính thức conflunce Perl XML-RPC site and discussions nhưng tất cả các đoạn mã mà chúng hiển thị ở đó dường như không hoạt động đối với tôi. Đây là nỗ lực bị tấn công của tôi tại địa chỉ đó:Có ai có thể nhận Confluence.pm để thêm tệp đính kèm không?

# The following command sort of worked: 
# ~/bin/wikitool.pl -action attach_file -url $MYURL 
# IT attached something but the file was empty 
sub attach_file { 
    my $confluence = XMLRPC::Lite->proxy($opts{server}."rpc/xmlrpc"); 
    my $token = $confluence->call("confluence1.login", $opts{login}, $opts{password})->result(); 

    # Fetch page 
    my $page = FetchPage($opts{title}); 
    if (not $page) { 
     dbg("$opts{title} page is missing.","FATAL"); 
    } 

    my $pageId = SOAP::Data->type(string => $$page{id}); 

    my $filename = "$ENV{HOME}/tmp/tmp0.gif"; 
    my $metadata = { 
     fileName => $filename, 
     contentType => "image/gif", 
     comment => "Some random GIF", 
    }; 
    if (not open FILE, "< $filename") { 
     dbg("Could not open file $filename: $!\n","FATAL"); 
    } 
    binmode FILE; 
    my $data; 
    $data .= $_ while (<FILE>); 
    my $call = $confluence->addAttachment($pageId, $metadata, $data); 

    my $fault = $call->fault(); 
    if (defined $fault) { 
     dbg("could not attach $filename" . $call->faultstring(), "FATAL"); 
    } 
    else { 
     print "attached $filename\n"; 
    } 
} 

Trả lời

5

Bạn đã 95% con đường ở đó. Sốt bí mật cho tôi:

$data .= $_ while (<FILE>); 
my $escaped_data = new RPC::XML::base64($data); 
my $call = $confluence->addAttachment($pageId, $metadata, $escaped_data); 

Tôi chắc chắn rằng quá muộn để có thể hữu ích, nhưng có thể ai đó sẽ gặp phải một số ngày khác.

+0

Cảm ơn! Tôi đã chuyển sang các dự án khác nhưng cảm ơn vì đã thêm một số thông tin chi tiết cho tập thể ... – stephenmm

0

xml-rpc không còn được dùng nữa trong hợp lưu. rất nhiều chức năng hiện không hoạt động trong giao diện xml-rpc. nhiều công trình hơn xà phòng.

Các vấn đề liên quan