use of org.apache.commons.fileupload.disk.DiskFileItemFactory in project cerberus-source by cerberustesting.
the class importFile method doPost.
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (ServletFileUpload.isMultipartContent(request)) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iterator = items.iterator();
File uploadedFile = null;
String test = "";
String testcase = "";
String step = "";
String load = "";
while (iterator.hasNext()) {
FileItem item = (FileItem) iterator.next();
if (!item.isFormField()) {
String fileName = item.getName();
String root = getServletContext().getRealPath("/");
File pathFile = new File(root + "/cerberusFiles");
if (!pathFile.exists()) {
// boolean status = pathFile.mkdirs();
pathFile.mkdirs();
}
uploadedFile = new File(pathFile + File.separator + fileName);
LOG.debug(uploadedFile.getAbsolutePath());
item.write(uploadedFile);
} else {
String name = item.getFieldName();
if (name.equals("Test")) {
test = item.getString();
} else if (name.equals("Testcase")) {
testcase = item.getString();
} else if (name.equals("Step")) {
step = item.getString();
} else if (name.equals("Load")) {
load = item.getString();
}
}
}
response.sendRedirect("ImportHTML.jsp?Test=" + test + "&Testcase=" + testcase + "&Step=" + step + "&Load=" + load + "&FilePath=" + uploadedFile.getAbsolutePath());
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
use of org.apache.commons.fileupload.disk.DiskFileItemFactory in project cerberus-source by cerberustesting.
the class CreateTestDataLib method processRequest.
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
IFactoryTestDataLibData tdldFactory = appContext.getBean(IFactoryTestDataLibData.class);
ITestDataLibDataService tdldService = appContext.getBean(ITestDataLibDataService.class);
IParameterService parameterService = appContext.getBean(IParameterService.class);
JSONObject jsonResponse = new JSONObject();
Answer ans = new Answer();
AnswerItem ansItem = new AnswerItem();
MessageEvent msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_UNEXPECTED);
msg.setDescription(msg.getDescription().replace("%DESCRIPTION%", ""));
ans.setResultMessage(msg);
PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);
String charset = request.getCharacterEncoding();
response.setContentType("application/json");
Map<String, String> fileData = new HashMap<String, String>();
FileItem file = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> fields = upload.parseRequest(request);
Iterator<FileItem> it = fields.iterator();
if (!it.hasNext()) {
return;
}
while (it.hasNext()) {
FileItem fileItem = it.next();
boolean isFormField = fileItem.isFormField();
if (isFormField) {
fileData.put(fileItem.getFieldName(), ParameterParserUtil.parseStringParamAndDecode(fileItem.getString("UTF-8"), "", charset));
} else {
file = fileItem;
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
try {
/**
* Parsing and securing all required parameters.
*/
// Parameter that are already controled by GUI (no need to decode) --> We SECURE them
String type = policy.sanitize(fileData.get("type"));
String system = policy.sanitize(fileData.get("system"));
String environment = policy.sanitize(fileData.get("environment"));
String country = policy.sanitize(fileData.get("country"));
String database = policy.sanitize(fileData.get("database"));
String databaseUrl = policy.sanitize(fileData.get("databaseUrl"));
String databaseCsv = policy.sanitize(fileData.get("databaseCsv"));
// Parameter that needs to be secured --> We SECURE+DECODE them
// this is mandatory
String name = fileData.get("name");
String group = fileData.get("group");
String description = fileData.get("libdescription");
String service = fileData.get("service");
// Parameter that we cannot secure as we need the html --> We DECODE them
String script = fileData.get("script");
String servicePath = fileData.get("servicepath");
String method = fileData.get("method");
String envelope = fileData.get("envelope");
String csvUrl = fileData.get("csvUrl");
String separator = fileData.get("separator");
String test = fileData.get("subdataCheck");
/**
* Checking all constrains before calling the services.
*/
// Prepare the final answer.
MessageEvent msg1 = new MessageEvent(MessageEventEnum.GENERIC_OK);
Answer finalAnswer = new Answer(msg1);
if (StringUtil.isNullOrEmpty(name)) {
msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_EXPECTED);
msg.setDescription(msg.getDescription().replace("%ITEM%", "Test Data Library").replace("%OPERATION%", "Create").replace("%REASON%", "Test data library name is missing! "));
finalAnswer.setResultMessage(msg);
} else {
/**
* All data seems cleans so we can call the services.
*/
ITestDataLibService libService = appContext.getBean(ITestDataLibService.class);
IFactoryTestDataLib factoryLibService = appContext.getBean(IFactoryTestDataLib.class);
TestDataLib lib = factoryLibService.create(0, name, system, environment, country, group, type, database, script, databaseUrl, service, servicePath, method, envelope, databaseCsv, csvUrl, separator, description, request.getRemoteUser(), null, "", null, null, null, null, null);
// Creates the entries and the subdata list
ansItem = libService.create(lib);
finalAnswer = AnswerUtil.agregateAnswer(finalAnswer, (Answer) ansItem);
/**
* Object created. Adding Log entry.
*/
if (ansItem.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode())) {
ILogEventService logEventService = appContext.getBean(LogEventService.class);
logEventService.createForPrivateCalls("/CreateTestDataLib", "CREATE", "Create TestDataLib : " + request.getParameter("name"), request);
}
List<TestDataLibData> tdldList = new ArrayList();
TestDataLib dataLibWithUploadedFile = (TestDataLib) ansItem.getItem();
if (file != null) {
ans = libService.uploadFile(dataLibWithUploadedFile.getTestDataLibID(), file);
if (ans.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode())) {
dataLibWithUploadedFile.setCsvUrl(File.separator + dataLibWithUploadedFile.getTestDataLibID() + File.separator + file.getName());
libService.update(dataLibWithUploadedFile);
}
}
// Getting list of SubData from JSON Call
if (fileData.get("subDataList") != null) {
JSONArray objSubDataArray = new JSONArray(fileData.get("subDataList"));
tdldList = getSubDataFromParameter(request, appContext, dataLibWithUploadedFile.getTestDataLibID(), objSubDataArray);
}
if (file != null && test.equals("1")) {
String firstLine = "";
String secondLine = "";
try (BufferedReader reader = new BufferedReader(new FileReader(parameterService.getParameterStringByKey("cerberus_testdatalibCSV_path", "", null) + lib.getCsvUrl()))) {
firstLine = reader.readLine();
secondLine = reader.readLine();
String[] firstLineSubData = (!dataLibWithUploadedFile.getSeparator().isEmpty()) ? firstLine.split(dataLibWithUploadedFile.getSeparator()) : firstLine.split(",");
String[] secondLineSubData = (!dataLibWithUploadedFile.getSeparator().isEmpty()) ? secondLine.split(dataLibWithUploadedFile.getSeparator()) : secondLine.split(",");
int i = 0;
int y = 1;
TestDataLibData firstLineLibData = tdldList.get(0);
tdldList = new ArrayList();
if (StringUtil.isNullOrEmpty(firstLineLibData.getColumnPosition())) {
firstLineLibData.setColumnPosition("1");
}
if (StringUtil.isNullOrEmpty(firstLineLibData.getValue())) {
firstLineLibData.setValue(secondLineSubData[0]);
}
if (StringUtil.isNullOrEmpty(firstLineLibData.getColumn())) {
firstLineLibData.setColumn(firstLineSubData[0]);
}
tdldList.add(firstLineLibData);
for (String item : firstLineSubData) {
TestDataLibData tdld = tdldFactory.create(null, dataLibWithUploadedFile.getTestDataLibID(), item + "_" + y, secondLineSubData[i], item, null, Integer.toString(y), null);
tdldList.add(tdld);
i++;
y++;
}
// Update the Database with the new list.
} finally {
try {
file.getInputStream().close();
} catch (Throwable ignore) {
}
}
}
ans = tdldService.compareListAndUpdateInsertDeleteElements(dataLibWithUploadedFile.getTestDataLibID(), tdldList);
finalAnswer = AnswerUtil.agregateAnswer(finalAnswer, (Answer) ans);
}
/**
* Formating and returning the json result.
*/
// sets the message returned by the operations
jsonResponse.put("messageType", finalAnswer.getResultMessage().getMessage().getCodeString());
jsonResponse.put("message", finalAnswer.getResultMessage().getDescription());
response.getWriter().print(jsonResponse);
response.getWriter().flush();
} catch (JSONException ex) {
LOG.warn(ex);
response.getWriter().print(AnswerUtil.createGenericErrorAnswer());
response.getWriter().flush();
}
}
use of org.apache.commons.fileupload.disk.DiskFileItemFactory in project mica2 by obiba.
the class TempFilesResource method getUploadedFile.
FileItem getUploadedFile(HttpServletRequest request) throws FileUploadException {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
for (FileItem fileItem : upload.parseRequest(request)) {
if (!fileItem.isFormField()) {
return fileItem;
}
}
return null;
}
use of org.apache.commons.fileupload.disk.DiskFileItemFactory in project hudson-2.x by hudson.
the class PluginManager method doUploadPlugin.
/**
* Uploads a plugin.
*/
public HttpResponse doUploadPlugin(StaplerRequest req) throws IOException, ServletException {
try {
Hudson.getInstance().checkPermission(Hudson.ADMINISTER);
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
// Parse the request
FileItem fileItem = (FileItem) upload.parseRequest(req).get(0);
String fileName = Util.getFileName(fileItem.getName());
if ("".equals(fileName))
return new HttpRedirect("advanced");
if (!fileName.endsWith(".hpi"))
throw new Failure(hudson.model.Messages.Hudson_NotAPlugin(fileName));
fileItem.write(new File(rootDir, fileName));
fileItem.delete();
pluginUploaded = true;
return new HttpRedirect(".");
} catch (IOException e) {
throw e;
} catch (Exception e) {
// grrr. fileItem.write throws this
throw new ServletException(e);
}
}
use of org.apache.commons.fileupload.disk.DiskFileItemFactory in project KeyBox by skavanagh.
the class UploadAndPushKtrl method uploadSubmit.
@Kontrol(path = "/admin/uploadSubmit", method = MethodType.POST)
public String uploadSubmit() {
String retVal = "/admin/upload_result.html";
try {
Long userId = AuthUtil.getUserId(getRequest().getSession());
List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(getRequest());
for (FileItem item : multiparts) {
if (!item.isFormField()) {
uploadFileName = new File(item.getName()).getName();
File path = new File(UPLOAD_PATH);
if (!path.exists()) {
path.mkdirs();
}
upload = new File(UPLOAD_PATH + File.separator + uploadFileName);
item.write(upload);
} else {
pushDir = item.getString();
}
}
pendingSystemStatus = SystemStatusDB.getNextPendingSystem(userId);
hostSystemList = SystemStatusDB.getAllSystemStatus(userId);
} catch (Exception ex) {
log.error(ex.toString(), ex);
retVal = "/admin/upload.html";
}
// reset csrf token back since it's already set on page load
getRequest().getSession().setAttribute(SecurityFilter._CSRF, getRequest().getParameter(SecurityFilter._CSRF));
return retVal;
}
Aggregations