/** * Tencent is pleased to support the open source community by making MSEC available. * * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved. * * Licensed under the GNU General Public License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may * obtain a copy of the License at * * https://opensource.org/licenses/GPL-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package beans.service; import beans.dbaccess.SharedobjectTag; import ngse.org.DBUtil; import ngse.org.FileUploadServlet; import org.apache.commons.fileupload.FileUpload; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by Administrator on 2016/1/29. * 上传业务.so/.jar文件 */ @WebServlet(name = "SharedobjectUpload") public class SharedobjectUpload extends FileUploadServlet { private String insertTable(String firstName, String secondName, String tagName, String memo) { DBUtil util = new DBUtil(); if (util.getConnection() == null) { return "DB connect failed."; } String sql; List<Object> params = new ArrayList<Object>(); sql = "insert into t_sharedobject_tag(first_level_service_name, " + "second_level_service_name,tag_name, memo) values(?,?,?,?)"; params.add(firstName); params.add(secondName); params.add(tagName); params.add(memo); try { int addNum = util.updateByPreparedStatement(sql, params); if (addNum >= 0) { return "success"; } return "insert failed"; } catch (SQLException e) { return "insert failed"; } finally { util.releaseConn(); } } public String run(Map<String, String> fields, List<String>fileNames) { String first_name = fields.get("first_level_service_name_of_new_sharedobject"); String second_name = fields.get("second_level_service_name_of_new_sharedobject"); String tag_name = fields.get("new_sharedobject_tag"); if (first_name == null || first_name.length() < 1|| second_name == null || second_name.length() < 1 || tag_name == null || tag_name.length()<1) { return ("{\"status\":100, \"message\":\"servicename and tag name should NOT be empty.\"}"); } if (fileNames.size() != 1) { return ("{\"status\":100, \"message\":\"file field missing.\"}"); } File oldFile = new File(fileNames.get(0)); // String baseName = oldFile.getName(); //不管什么开发语言,一开始都是用.so文件先存着的,发布打包的时候才会修改 String destName = SharedobjectTag.getSharedobjectName(first_name, second_name, tag_name, "so");//先默认是c++开发 File newFile = new File(destName); if (newFile.exists()) { return String.format("{\"status\":100, \"message\":\"file %s exists\"}", newFile.getName()); } if (!oldFile.renameTo(newFile)) { return ("{\"status\":100, \"message\":\"rename file failed.\"}"); } //入库 String memo = fields.get("new_sharedobject_memo"); if (memo == null) {memo = "";} String result = insertTable(first_name, second_name, tag_name, memo); if (result.equals("success")) { return String.format("{\"status\":0, \"message\":\"success\", \"file_name\":\"%s\"}", newFile.getName()); } else { return String.format("{\"status\":100, \"message\":\"%s\"}", result); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }