public ResponseEnvelope UploadFile(RequestEnvelope reqEnv,HttpServletRequest request) throws Exception {
//声明响应信封
ResponseEnvelope resEnv = new ResponseEnvelope();
//默认设置应用代码为-1失败
resEnv.getHeader().setAppCode(-1);
IFile file = (IFile) reqEnv.getBody().getParameter("file");
//获取本应用数据库持久化对象,要求数据源名与应用名称一致,并数据源采用小写
DBPersistenceManager dbpm = getPM("XzqlApp");
String foreignID = (String) reqEnv.getBody().getParameter("foreignID");
String materialname = (String) reqEnv.getBody().getParameter("materialname");
if (file.getSize() > 0) {
String uuid = UUIDUtil.getUUID();
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String dateNowStr = sdf.format(d);
String filePath = request.getSession().getServletContext().getRealPath("/")+"uploadFile/netPlus/"+dateNowStr;
String Path = "uploadFile/netPlus/"+dateNowStr+"\\"+uuid+"."+file.getFileExt();
//文件目录不存在,则创建
if(!new File(filePath).exists())
{
new File(filePath).mkdirs();
}
String fileName=filePath+"\\"+uuid+"."+file.getFileExt();
String Name=uuid+"."+file.getFileExt();
try {
ByteArrayInputStream stream = file.getContentStream();
FileOutputStream out=new FileOutputStream(fileName);
byte[] filebyte=new byte[1024*20];
int i=0;
while(( i=stream.read(filebyte))>0){
out.write(filebyte,0,i);
}
out.close();
out=null;
stream.close();
stream=null;
//默认设置应用代码为0成功
resEnv.getHeader().setAppCode(0);
resEnv.getBody().addParameter("filename", dateNowStr+"/"+uuid+"."+file.getFileExt());
///
StringBuffer sb = new StringBuffer();
sb.append("insert into mymaterial_info(idseq,foreignid,filename,filepath,materialname,");
sb.append("filesize,fileformat,flag,content) values(?,?,?,?,?,?,?,?,empty_blob())");
Object[] param = new Object[8];
String idseq = UUIDUtil.getUUID();
param[0] = idseq;//id
param[1] = foreignID;//??
param[2] = Name;//文件名
param[3] = Path;//文件路径
param[4] = materialname;//材料名称
double size = file.getSize();
if(size!=0){
size = size/1024;
}
param[5] = size;//文件大小,单位千字节
param[6] = file.getFileExt();//扩展名
param[7] = "0";//有效
dbpm.executeUpdate(sb.toString(), param);
Map<String, String> pks = new HashMap<String, String>();
pks.put("idseq", idseq);
//默认设置应用代码为0成功
resEnv.getHeader().setAppCode(0);
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
//关闭持久化对象
dbpm.close();
}
}
return resEnv;
}
java上传
最新推荐文章于 2022-11-01 11:07:32 发布