通过vertx-web上传文件

该博客介绍了一个使用Vert.x处理文件上传的示例,特别关注于读取上传的Excel文件并进行数据解析。当没有文件上传或者解析过程中遇到错误时,程序会返回相应的错误信息。解析完成后,数据将被转换为JSON格式并通过HTTP客户端发送到 '/product/creatProduct' API 进行进一步处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void batchCreateProduct(RoutingContext context){
		JSONObject resJson = new JSONObject();
		List<String> keys = TrustFastReleaseKeyGenerate.getInstance().getTradeAssetsKeyList();
		if(context.fileUploads()==null||context.fileUploads().isEmpty()){
			resJson.put(Constant.RETURN_CODE, Constant.FAILED_FILE_UPLOAD_ERROR);
			resJson.put(Constant.RETURN_MSG, "请上传文件");
			LOG.info("上传文件失败,请上传文件");
			context.response().end(resJson.toJSONString());
			return;
		}
		FileUpload file = (FileUpload) context.fileUploads().toArray()[0];
		JsonArray queryJsonArray = new JsonArray();
		try{
			OPCPackage opcPackage = OPCPackage.open(file.uploadedFileName());
			XSSFWorkbook workbook = new XSSFWorkbook(opcPackage);
			XSSFSheet sheet0 = workbook.getSheetAt(0);
			for(int i = 1;i<sheet0.getLastRowNum();i++){
				JsonObject item = new JsonObject();
				for(int j=0;j<keys.size();j++){
					XSSFCell cell = sheet0.getRow(i).getCell(j);
					if(cell!=null)
FileUploadServlet.class package test; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUploadServlet extends HttpServlet { // 定义文件上传路径 private String uploadPath = "G://upload/"; // 限制文件上传大小 private int maxPostSize = 100 * 1024 * 1024; public FileUploadServlet() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 得到用户需要保存的服装的id //String dressId = request.getParameter("dressID"); //System.out.println(dressId); // 保存文件到服务器中 response.setContentType("text/html; charset=UTF-8"); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(4096); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(maxPostSize); try { List fileItems = upload.parseRequest(request); Iterator iter = fileItems.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField()) { String name = item.getName(); System.out.println(name); try { item.write(new File(uploadPath + name)); } catch (Exception e) { e.printStackTrace(); } } } } catch (FileUploadException e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void init() throws ServletException { // Put your code here } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值