第一步,添加上傳處理句柄,服務名固定為`upload.file.sys`
選擇在System中添加
```
addHandler("upload.file.sys", new UploadFile());
```
第二步,處理上傳文件內容
上傳數據格式為List,其中key的含義分別為
```
name:文件名,string
type:文件類型,string,格式形如image/jpg
size:文件大小,int
content:文件內容,byte[]
```
示例處理代碼
```
List fileids = new ArrayList();
for (int i=0; i<_dsub.size(); i++) {
Map item = (Map) _dsub.get(i);
//get file content
byte[] arr = (byte[]) item.get("content");
//get file name
String fname = (String) item.get("name");
String suffix = fname.substring(fname.lastIndexOf("."));
//build unique name
String uname = UUID.randomUUID().toString() + suffix;
//save file to somewhere
String fullName = SAVE_PATH + File.separator + uname;
FileOutputStream fos = new FileOutputStream(fullName);
fos.write(arr);
fos.close();
//return unique name
fileids.add(uname);
}
```
第三步,在UI端通過AWFFile對象獲取返回json數據
```
function getResponse() {
var response = $('#card').AWFFile().getValue();
console.log(response);
}
```
此時response為從服務端返回的json數據。
第四步,下載指定文件
```
/awf/vservice/System/Invoke.service?fileType=jpg&name=xxx
```
部署需要注意的是有兩個地方要配置:
1. webapps/awf目錄下的web.xml,需要配置tempPath參數
2. pazl/conf目錄下的awf-default.xml,需要配置file.store.path參數