| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package xin.glue.ui.common.blob;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.Iterator;
- import java.util.zip.GZIPOutputStream;
- //import java.util.zip.ZipOutputStream;
- import xin.glue.ui.common.PosDBEngine;
- import com.posdata.glue.biz.constants.PosBizControlConstants;
- import com.posdata.glue.context.PosContext;
- import com.posdata.glue.web.control.PosMultipartRequest;
- public class PosFileUpload extends PosDBEngine {
- public String runActivity(PosContext ctx) {
- PosMultipartRequest request = ctx.getMultiPartRequest();
- if(request == null)
- return PosBizControlConstants.SUCCESS;
- setParamMap(ctx, "sqlkey", "param");
- for (Iterator iter = request.getFileNames(); iter.hasNext(); ) {
- InputStream in = request.getInputStream(iter.next().toString());
- try {
- ByteArrayOutputStream bout = new ByteArrayOutputStream(in.available());
- //建立 gzip 压缩输出流
- GZIPOutputStream gzout = new GZIPOutputStream (bout);
- //设定读入缓冲区尺寸
- byte[] buf = new byte[1024 * 2];
- int byteRead;
- while ((byteRead = in.read(buf)) != -1) {
- gzout.write(buf, 0, byteRead);
- }
- //这个在写入 ByteArrayOutputStream 时一定要有,否则不能完全写入
- gzout.finish();
- ctx.put("BLOBFILE", bout.toByteArray());
- Execute(ctx, "sqlkey", "param", 'i');
- in.close();
- bout.close();
- gzout.close();
- } catch (IOException e) {
- logger.logError(e.getMessage().substring(0, 100));
- }
- }
- return PosBizControlConstants.SUCCESS;
- }
- }
|