Webserviceのアップロードファイル(byte配列アップロード)ファイルサイズは自由
1742 ワード
ネット上にはウェブサービスのアップロードの例がたくさんありますが、アップロードファイルのサイズには制限があります.この方法はファイルのサイズに変更され、アップロードを制限しません.
まずクライアントを見て
送信毎バイト数1 Mの設定
サービス端をもう一度見て
まずクライアントを見て
送信毎バイト数1 Mの設定
byte[] buffer = new byte[1024*1024];
public static void test2(String path,String filename) {
try {
// ,
System.out.println("axis"+path);
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference("http://192.168.1.101:8080/axis2/services/MyAxis2Service");
options.setTo(targetEPR);
QName opAddEntry;
java.io.File file = new java.io.File(path);
java.io.FileInputStream fis = new java.io.FileInputStream(path);
int n = 0;
Class[] classes ;
Object[] opAddEntryArgs ;
// 1M
byte[] buffer = new byte[1024*1024];
while((n=fis.read(buffer))>0)
{
System.out.println(buffer+"buffer"+n);
opAddEntryArgs = new Object[] { buffer,n,filename };
classes = new Class[] { Boolean.class };
opAddEntry = new QName("http://service.web.org","uploadImageWithByte");
System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);
}
} catch (Exception e)
{
e.printStackTrace();
}
}
サービス端をもう一度見て
public boolean uploadImageWithByte(byte[] imageByte, int length,String filename) {
FileOutputStream fos = null;
try {
// D , true
fos = new FileOutputStream("d:\\"+filename,true);
fos.write(imageByte,0, length);
fos.close();
} catch (Exception e) {
return false;
} finally {
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
}
}
}
return true;
}