2011-01-25 86 views
2
package com.cordys.report; 

import java.io.FileInputStream; 

import org.apache.commons.codec.binary.Base64; 


public class Encode { 
public static String encodeFileStream(String filePath) //file path ex : C:\Program Files\Cordys\Web\reports\I0001180.pdf 
{  
try { 
    FileInputStream fin = new FileInputStream("E:/CSS Document/Test.pdf"); 
    StringBuffer sb=new StringBuffer(); 
    int lineLength = 72; 
    byte[] buf = new byte[lineLength/4*3]; 
    while (true) { 
    int len = fin.read(buf); 
    if (len <= 0) { 
     break; 
    } 
    sb.append(Base64.encode(buf)); 

    return sb.toString(); 
} 
} 
catch(Exception e) { 
    return e.getMessage(); 
} 
} 



} 
+0

看起來像這樣的精確副本:http://stackoverflow.com/questions/4790826/non-static-method-encodebyte-cannot-be-referenced-from-a-static-context連類使用的是相同的。 – 2011-01-27 06:43:21

+0

好吧,到目前爲止,您已設法創建六個未註冊的帳戶。我已經將它們合併在一起(http://stackoverflow.com/users/587133/monika)。請註冊一個賬戶(你已經提出了六個問題,它的時間),然後FLAG這一個。當您舉報時,請選擇其他,然後讓我將您的帳戶合併到您的帳戶中。 – Will 2011-01-28 13:10:47

回答

4

方法Base64.encode()不是static。你必須創建Base64類的實例,然後調用該方法,即像做new Base64().encode(bytes)

3

由於該方法不是靜態的,因此只能從其封閉類的實例中調用,因此需要創建新的對象並調用encode

Base64 b = new Base64(); 
sb.append(b.encode(buf)); 
相關問題