/**
* 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.LibraryFile;
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.*;
/**
* Created by Administrator on 2016/1/29.
* 上传新版本库文件内容、tag、memo
*/
@WebServlet(name = "FileUpload")
public class LibraryFileUpload extends FileUploadServlet{
private String insertTable(String firstName, String secondName, String baseFileName, 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_library_file(first_level_service_name, second_level_service_name,file_name, memo) values(?,?,?,?)";
params.add(firstName);
params.add(secondName);
params.add(baseFileName);
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_library");
String second_name = fields.get("second_level_service_name_of_new_library");
if (first_name == null || first_name.length() < 1||
second_name == null || second_name.length() < 1)
{
return ("{\"status\":100, \"message\":\"service 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();
String destName = LibraryFile.getLibraryFileName(first_name, second_name, baseName);
File newFile = new File(destName);
if (!oldFile.renameTo(newFile))
{
return("{\"status\":100, \"message\":\"rename file failed.\"}");
}
//入库
String memo = fields.get("new_library_memo");
if (memo == null) {memo = "";}
String result = insertTable(first_name, second_name, baseName, memo);
if (result.equals("success"))
{
return String.format("{\"status\":0, \"message\":\"success\", \"file_name\":\"%s\"}", baseName);
}
else
{
return String.format("{\"status\":100, \"message\":\"%s\"}", result);
}
}
}