上传文件

来源:互联网 发布:keil c51软件 编辑:程序博客网 时间:2024/06/05 06:40

两种方式,一种是直接对上传的文件的流进行处理,然后直接存库;一种是将文件上传到一个远程服务器,然后将文件在远程服务器的地址返回。
1:代码
String filename=requestVo.getFilename();
String url=requestVo.getUrl();
URL urlParam = new URL(url);
// 打开链接
HttpURLConnection conn = (HttpURLConnection) urlParam.openConnection();
// 设置请求方式为”GET”
conn.setRequestMethod(“GET”);
// 超时响应时间为5秒
conn.setConnectTimeout(5 * 1000);
List vos = commissionRecordInfoService.uploadTransferOrderExcelData(conn.getInputStream(), filename);
public List uploadTransferOrderExcelData(InputStream in, String fileName) {
long starTime = System.currentTimeMillis();
List list = new ArrayList();// 订单
try {
Workbook wb = this.openWorkbook(in, fileName);
Sheet sheet = (Sheet) wb.getSheetAt(0);
list =this.HandleTransferOrderExcel(sheet,null);
} catch (Exception e) {
// logger.error(e);
throw new CustomException(0,e.getMessage(),null);
}
long endTime = System.currentTimeMillis();
long Time = endTime - starTime;
long mtime = Time / 1000;
// logger.info(“导入”
// + (list.size() + “条数据,用时” + String.valueOf(mtime) + “+秒”));
return list;
}
public List HandleTransferOrderExcel(Sheet sheet, Object object) throws Exception {
try {
Row row = null;
Cell cell = null;
int totalRows = sheet.getPhysicalNumberOfRows();
// String sheetName = sheet.getSheetName(); //获取sheet名字
List orderList = new ArrayList();// 业绩订单
for (int r = 1; r < totalRows; r++) // 行 去除标题行 故从1开始
{
row = sheet.getRow(r);
TransorderRecordVo orderExcel = new TransorderRecordVo();
if (row != null) {
for (int c = 0; c < 8; c++)// 列
{
cell = row.getCell(c);
String cellValue = “”;
if (null != cell) {
// 以下是判断数据的类型
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC: // 数字
// 时间格式
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date dd = cell.getDateCellValue();
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
cellValue = df.format(dd);
} else {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cellValue = cell.getStringCellValue() + “”;
}
break;

                        case HSSFCell.CELL_TYPE_STRING: // 字符串                            cellValue = cell.getStringCellValue();                            break;                        case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean                            cellValue = cell.getBooleanCellValue() + "";                            break;                        case HSSFCell.CELL_TYPE_FORMULA: // 公式                            cellValue = cell.getCellFormula() + "";                            break;                        case HSSFCell.CELL_TYPE_BLANK: // 空值                            cellValue = "";                            break;                        case HSSFCell.CELL_TYPE_ERROR: // 故障                            cellValue = "";                            break;                        default:                            cellValue = "";                            break;                        }                    }                    if (c == 0) { // 转单类型                        if (cellValue.trim() == null || "".equals(cellValue.trim())) {                            orderExcel = null;                            break;                        } else {                            orderExcel.setTransOrderName(cellValue.trim());                            if(TransferOrderReasonEnum.NUM.getDesc().equals(orderExcel.getTransOrderName())) {                                orderExcel.setTransorderType(TransferOrderReasonEnum.NUM.getValue());                            }else if(TransferOrderReasonEnum.PACKAGE.getDesc().equals(orderExcel.getTransOrderName())){                                orderExcel.setTransorderType(TransferOrderReasonEnum.PACKAGE.getValue());                            }                        }                    }                    if (c == 1) { // 金融单号                        if (cellValue.trim() != null && !"".equals(cellValue.trim())) {                            orderExcel.setOrderId(cellValue.trim());                            ;                        } else {                            // logger.info((r+1)+"行"+(c+1)+"列,);                        }                    }                    if (c == 2) { // 转单人姓名                        if (cellValue.trim() != null && !"".equals(cellValue.trim())) {                             orderExcel.setTransferName(cellValue.trim());                        } else {                            // logger.info((r+1)+"行"+(c+1)+"列,);                        }                    }                    if (c == 3) { // 转单人系统号                        if (cellValue.trim() != null && !"".equals(cellValue.trim())) {                             orderExcel.setTransferSystemid(cellValue.trim());                        } else {                            // logger.info((r+1)+"行"+(c+1)+"列,);                        }                    }                    if (c == 4) { // 接单人姓名                        if (cellValue.trim() != null && !"".equals(cellValue.trim())) {                             orderExcel.setReceiverName(cellValue.trim());                        } else {                            // logger.info((r+1)+"行"+(c+1)+"列,);                        }                    }                    if (c == 5) { // 接单人系统号                        if (cellValue.trim() != null && !"".equals(cellValue.trim())) {                             orderExcel.setReceiverSystemid(cellValue.trim());                        } else {                            // logger.info((r+1)+"行"+(c+1)+"列,);                        }                    }                    if (c == 6) { // 转单原因                        if (cellValue.trim() != null && !"".equals(cellValue.trim())) {                             orderExcel.setTransorderReasonName(cellValue.trim());                             orderExcel.setTransorderReason((TransferOrderReasonEnum.descOf(cellValue.trim()).getValue()));                        } else {                            // logger.info((r+1)+"行"+(c+1)+"列,);                        }                    }                    if (c == 7) { // 转单时间                        if (cellValue.trim() != null && !"".equals(cellValue.trim())) {                            DateFormat df = new SimpleDateFormat("yyyyMMdd");                             orderExcel.setTransferDate(df.parse(cellValue.trim()));                        } else {                            // logger.info((r+1)+"行"+(c+1)+"列,);                        }                    }                }                // 组装list                if (orderExcel != null) {                    // orderExcel.setReceviableCode();                    orderList.add(orderExcel);                }            }        }        return orderList;    } catch (Exception e) {        throw e;    }}

2:直接上传文件 那么就是直接从文件流中获取数据,直接进行处理
String filename=requestVo.getFilename();
String url=requestVo.getUrl();
URL urlParam = new URL(url);
// 打开链接
HttpURLConnection conn = (HttpURLConnection) urlParam.openConnection();
// 设置请求方式为”GET”
conn.setRequestMethod(“GET”);
// 超时响应时间为5秒
conn.setConnectTimeout(5 * 1000);
// 加载excel
List list = new ArrayList();// 订单
String excelDatas = ParseExcelUtil.getInstance().loadExcel(filename, conn.getInputStream(),
list);
System.out.println(url);
request.setCharacterEncoding(“UTF-8”);
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile(“uploadFile”);
InputStream inputStream = file.getInputStream();
String s = file.getOriginalFilename();