Example usage for org.apache.commons.fileupload FileUploadException printStackTrace

List of usage examples for org.apache.commons.fileupload FileUploadException printStackTrace

Introduction

In this page you can find the example usage for org.apache.commons.fileupload FileUploadException printStackTrace.

Prototype

public void printStackTrace(PrintStream s) 

Source Link

Document

Prints this throwable and its backtrace to the specified print stream.

Usage

From source file:Model.Picture.java

public static ArrayList<String> upload(HttpServletRequest request, int type) {
    ArrayList<String> errors = new ArrayList<String>();
    ArrayList<String> pictureNames = new ArrayList<String>();

    DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(Constants.UPLOAD_SIZE_THRESHOLD);
    new File(Constants.TEMP_DIR).mkdirs();
    factory.setRepository(new File(Constants.TEMP_DIR));

    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setSizeMax(Constants.MAX_UPLOAD_SIZE);

    try {//w  w w  .ja va 2 s.com
        List fileItems = upload.parseRequest(request);
        Iterator i = fileItems.iterator();

        while (i.hasNext()) {
            FileItem fileItem = (FileItem) i.next();
            String fileName = fileItem.getName();

            if (type == EXCEL_UPLOAD)
                errors.addAll(upload_excel(fileName, fileItem));
            else if (type == PICTURE_UPLOAD)
                errors.addAll(upload_picture(fileName, fileItem, pictureNames));
        }
    } catch (org.apache.commons.fileupload.FileUploadException e) {
        e.printStackTrace(System.out);
    } catch (Exception e) {
        e.printStackTrace(System.out);
    }

    if (type == PICTURE_UPLOAD)
        DataBaseTools.insertAndUpdateRecords(pictureNames);

    return errors;
}

From source file:com.meetme.plugins.jira.gerrit.adminui.AdminServlet.java

@SuppressWarnings("unchecked")
@Override/*from w w  w.  jav  a 2s .c  om*/
protected void doPost(final HttpServletRequest req, final HttpServletResponse resp)
        throws ServletException, IOException {
    try {
        String username = userManager.getRemoteUsername(req);

        if (username == null || !userManager.isSystemAdmin(username)) {
            redirectToLogin(req, resp);
            return;
        }

        File privateKeyPath = null;
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List<FileItem> items;

        try {
            // Unfortunately "multipart" makes it so every field comes through as a "FileItem"

            items = (List<FileItem>) upload.parseRequest(req);
        } catch (FileUploadException e) {
            e.printStackTrace(resp.getWriter());
            return;
        }

        this.setAllFields(items);
        privateKeyPath = this.doUploadPrivateKey(items, configurationManager.getSshHostname());

        if (privateKeyPath != null) {
            // We'll store the *path* to the file in ConfigResource, to make it easy to look it
            // up in the future.
            log.debug("---- Saved ssh private key at: " + privateKeyPath.toString() + " ----");
            configurationManager.setSshPrivateKey(privateKeyPath);
        } else if (configurationManager.getSshPrivateKey() != null) {
            log.debug("---- Private key is already on file, and not being replaced. ----");
        } else {
            // TODO: is this a failure?
            log.info(
                    "**** No private key was uploaded, and no key currently on file!  Requests will fail. ****");
        }
    } catch (Exception e) {
        e.printStackTrace(resp.getWriter());
        return;
    }

    resp.setContentType(CONTENT_TYPE);
    renderer.render(TEMPLATE_ADMIN, configToMap(configurationManager), resp.getWriter());
}

From source file:com.google.livingstories.servlet.DataImportServlet.java

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    startTime = System.currentTimeMillis();

    message = "";

    if (req.getContentType().contains("multipart/form-data")) {
        try {//from   w ww  .ja  v  a  2  s  .  co  m
            ServletFileUpload upload = new ServletFileUpload();
            JSONObject data = null;
            boolean override = false;
            FileItemIterator iter = upload.getItemIterator(req);
            while (iter.hasNext()) {
                FileItemStream item = iter.next();
                if (item.getFieldName().equals("override")) {
                    override = true;
                } else if (item.getFieldName().equals("data")) {
                    data = new JSONObject(Streams.asString(item.openStream()));
                }
            }
            checkRunState(override);
            inputData = data;
            setUp();
        } catch (FileUploadException ex) {
            throw new RuntimeException(ex);
        } catch (JSONException ex) {
            throw new RuntimeException(ex);
        }
    }

    try {
        process();
    } catch (Exception ex) {
        Writer result = new StringWriter();
        PrintWriter printWriter = new PrintWriter(result);
        ex.printStackTrace(printWriter);
        message = result.toString();
        runState = RunState.ERROR;
    } finally {
        if (runState != RunState.RUNNING) {
            tearDown();
        }
        Caches.clearAll();
    }

    resp.setContentType("text/html");
    resp.getWriter().append(message + "<br>" + runState.name());
}

From source file:com.sun.faban.harness.webclient.Deployer.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    try {/*from  w  ww. jav a  2 s  .co m*/
        List<String> deployNames = new ArrayList<String>();
        List<String> cantDeployNames = new ArrayList<String>();
        List<String> errDeployNames = new ArrayList<String>();
        List<String> invalidNames = new ArrayList<String>();
        List<String> errHeaders = new ArrayList<String>();
        List<String> errDetails = new ArrayList<String>();

        String user = null;
        String password = null;
        boolean clearConfig = false;
        boolean hasPermission = true;

        // Check whether we have to return text or html
        boolean acceptHtml = false;
        String acceptHeader = request.getHeader("Accept");
        if (acceptHeader != null && acceptHeader.indexOf("text/html") >= 0)
            acceptHtml = true;

        DiskFileUpload fu = new DiskFileUpload();
        // No maximum size
        fu.setSizeMax(-1);
        // maximum size that will be stored in memory
        fu.setSizeThreshold(4096);
        // the location for saving data that is larger than getSizeThreshold()
        fu.setRepositoryPath(Config.TMP_DIR);

        StringWriter messageBuffer = new StringWriter();
        PrintWriter messageWriter = new PrintWriter(messageBuffer);

        List fileItems = null;
        try {
            fileItems = fu.parseRequest(request);
        } catch (FileUploadException e) {
            throw new ServletException(e);
        }
        // assume we know there are two files. The first file is a small
        // text file, the second is unknown and is written to a file on
        // the server
        for (Iterator i = fileItems.iterator(); i.hasNext();) {
            FileItem item = (FileItem) i.next();
            String fieldName = item.getFieldName();
            if (item.isFormField()) {
                if ("user".equals(fieldName)) {
                    user = item.getString();
                } else if ("password".equals(fieldName)) {
                    password = item.getString();
                } else if ("clearconfig".equals(fieldName)) {
                    String value = item.getString();
                    clearConfig = Boolean.parseBoolean(value);
                }
                continue;
            }

            if (!"jarfile".equals(fieldName))
                continue;

            String fileName = item.getName();

            if (fileName == null) // We don't process files without names
                continue;

            if (Config.SECURITY_ENABLED) {
                if (Config.DEPLOY_USER == null || Config.DEPLOY_USER.length() == 0
                        || !Config.DEPLOY_USER.equals(user)) {
                    hasPermission = false;
                    break;
                }
                if (Config.DEPLOY_PASSWORD == null || Config.DEPLOY_PASSWORD.length() == 0
                        || !Config.DEPLOY_PASSWORD.equals(password)) {
                    hasPermission = false;
                    break;
                }
            }
            // Now, this name may have a path attached, dependent on the
            // source browser. We need to cover all possible clients...

            char[] pathSeparators = { '/', '\\' };
            // Well, if there is another separator we did not account for,
            // just add it above.

            for (int j = 0; j < pathSeparators.length; j++) {
                int idx = fileName.lastIndexOf(pathSeparators[j]);
                if (idx != -1) {
                    fileName = fileName.substring(idx + 1);
                    break;
                }
            }

            // Ignore all non-jarfiles.
            if (!fileName.toLowerCase().endsWith(".jar")) {
                invalidNames.add(fileName);
                continue;
            }

            String deployName = fileName.substring(0, fileName.length() - 4);

            if (deployName.indexOf('.') > -1) {
                invalidNames.add(deployName);
                continue;
            }

            // Check if we can deploy benchmark or service.
            // If running or queued, we won't deploy benchmark.
            // If service being used by current run,we won't deploy service.
            if (!DeployUtil.canDeployBenchmark(deployName) || !DeployUtil.canDeployService(deployName)) {
                cantDeployNames.add(deployName);
                continue;
            }

            File uploadFile = new File(Config.BENCHMARK_DIR, fileName);
            if (uploadFile.exists())
                FileHelper.recursiveDelete(uploadFile);

            try {
                item.write(uploadFile);
            } catch (Exception e) {
                throw new ServletException(e);
            }

            try {
                DeployUtil.processUploadedJar(uploadFile, deployName);
            } catch (Exception e) {
                messageWriter.println("\nError deploying " + deployName + ".\n");
                e.printStackTrace(messageWriter);
                errDeployNames.add(deployName);
                continue;
            }
            deployNames.add(deployName);
        }

        if (clearConfig)
            for (String benchName : deployNames)
                DeployUtil.clearConfig(benchName);

        if (!hasPermission)
            response.setStatus(HttpServletResponse.SC_FORBIDDEN);
        else if (cantDeployNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_CONFLICT);
        else if (errDeployNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
        else if (invalidNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
        else if (deployNames.size() > 0)
            response.setStatus(HttpServletResponse.SC_CREATED);
        else
            response.setStatus(HttpServletResponse.SC_NOT_FOUND);

        StringBuilder b = new StringBuilder();

        if (deployNames.size() > 0) {
            if (deployNames.size() > 1)
                b.append("Benchmarks/services ");
            else
                b.append("Benchmark/service ");

            for (int i = 0; i < deployNames.size(); i++) {
                if (i > 0)
                    b.append(", ");
                b.append((String) deployNames.get(i));
            }

            b.append(" deployed.");
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (invalidNames.size() > 0) {
            if (invalidNames.size() > 1)
                b.append("Invalid deploy files ");
            else
                b.append("Invalid deploy file ");
            for (int i = 0; i < invalidNames.size(); i++) {
                if (i > 0)
                    b.append(", ");
                b.append((String) invalidNames.get(i));
            }
            b.append(". Deploy files must have .jar extension.");
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (cantDeployNames.size() > 0) {
            if (cantDeployNames.size() > 1)
                b.append("Cannot deploy benchmarks/services ");
            else
                b.append("Cannot deploy benchmark/services ");
            for (int i = 0; i < cantDeployNames.size(); i++) {
                if (i > 0)
                    b.append(", ");
                b.append((String) cantDeployNames.get(i));
            }
            b.append(". Benchmark/services being used or " + "queued up for run.");
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (errDeployNames.size() > 0) {
            if (errDeployNames.size() > 1) {
                b.append("Error deploying benchmarks/services ");
                for (int i = 0; i < errDeployNames.size(); i++) {
                    if (i > 0)
                        b.append(", ");
                    b.append((String) errDeployNames.get(i));
                }
            }

            errDetails.add(messageBuffer.toString());
            errHeaders.add(b.toString());
            b.setLength(0);
        }

        if (!hasPermission)
            errHeaders.add("Permission denied!");

        Writer writer = response.getWriter();
        if (acceptHtml)
            writeHtml(request, writer, errHeaders, errDetails);
        else
            writeText(writer, errHeaders, errDetails);
        writer.flush();
        writer.close();
    } catch (ServletException e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
        throw e;
    } catch (IOException e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
        throw e;
    } catch (Exception e) {
        logger.log(Level.SEVERE, e.getMessage(), e);
        throw new ServletException(e);
    }
}

From source file:org.iplantc.phyloviewer.viewer.server.ParseTreeService.java

/**
 * Accepts a tree for parsing and storage, and returns a URL to view the tree.  
 * May return before the tree has finished importing.
 * /*from  w  ww  .ja v a2  s  . co m*/
 * @param request has the following parameters:
 * <pre>
 * newickData or nexml: a string representing the tree data
 * name (optional): the label that is given to the newick tree. 
 *    Nexml documents already have an attribute for tree label, so they don't use this parameter.
 * </pre>
 * 
 * @param response contains the URL to view the tree
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    Logger.getLogger("org.iplantc.phyloviewer").log(Level.FINE, "Received tree post request");

    PrintWriter writer = getWriter(response);

    Map<String, String[]> parameters = null;
    try {
        Logger.getLogger("org.iplantc.phyloviewer").log(Level.FINE, "Reading request parameters");
        parameters = getParameters(request);
    } catch (FileUploadException e) {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        writer.println(e.getMessage());
        writer.flush();
        writer.close();
        return;
    }

    try {
        String id = parseTree.saveTree(parameters);

        if (id != null) {
            Logger.getLogger("org.iplantc.phyloviewer").log(Level.FINE, "Returning response");
            response.setStatus(HttpServletResponse.SC_ACCEPTED);

            String viewURL = getViewURL(id, request);
            response.setHeader("Location", viewURL);
            writer.println(viewURL);
        } else {
            Logger.getLogger("org.iplantc.phyloviewer").log(Level.FINE, "No trees found. Returning response");
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
            writer.println("Bad request: No tree data found.");
        }
    } catch (ParserException e) {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        writer.println(e.getMessage());
        e.printStackTrace(writer);
    } catch (SAXException e) {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        writer.println(e.getMessage());
        e.printStackTrace(writer);
    } catch (Exception e) {
        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        writer.println(e.getMessage());
        e.printStackTrace(writer);
    }

    writer.flush();
    writer.close();
}

From source file:sai_cas.servlet.CrossMatchServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, java.io.IOException {

    PrintWriter out = response.getWriter();

    String cat = null, tab = null, radString = null, raColumn = null, decColumn = null, formatString = null;
    formats format;/*  w  ww.ja va 2 s .  com*/

    List<FileItem> fileItemList = null;

    FileItemFactory factory = new DiskFileItemFactory();
    try {
        ServletFileUpload sfu = new ServletFileUpload(factory);
        sfu.setSizeMax(50000000);
        /* Request size <= 50Mb */
        fileItemList = sfu.parseRequest(request);

    } catch (FileUploadException e) {
        throw new ServletException(e.getMessage());
        /* Nothing ...*/
    }

    FileItem fi = null;

    for (FileItem fi0 : fileItemList) {
        if (fi0.getFieldName().equals("file"))//(!fi0.isFormField())
        {
            fi = fi0;
        }
        if (fi0.getFieldName().equals("tab"))//(!fi0.isFormField())
        {
            tab = fi0.getString();
        }
        if (fi0.getFieldName().equals("cat"))//(!fi0.isFormField())
        {
            cat = fi0.getString();
        }
        if (fi0.getFieldName().equals("rad"))//(!fi0.isFormField())
        {
            radString = fi0.getString();
        }
        if (fi0.getFieldName().equals("racol"))//(!fi0.isFormField())
        {
            raColumn = fi0.getString();
        }
        if (fi0.getFieldName().equals("deccol"))//(!fi0.isFormField())
        {
            decColumn = fi0.getString();
        }
        if (fi0.getFieldName().equals("format"))//(!fi0.isFormField())
        {
            formatString = fi0.getString();
        }
    }
    if ((formatString == null) || (formatString.equalsIgnoreCase("votable"))) {
        format = formats.VOTABLE;
    } else if (formatString.equalsIgnoreCase("CSV")) {
        format = formats.CSV;
    } else {
        format = formats.VOTABLE;
    }

    QueryResultsOutputter qro = null;
    CSVQueryResultsOutputter csvqro = null;
    VOTableQueryResultsOutputter voqro = null;
    switch (format) {
    case CSV:
        response.setContentType("text/csv");
        csvqro = new CSVQueryResultsOutputter(null);
        qro = csvqro;
        break;
    case VOTABLE:
        response.setContentType("text/xml");
        voqro = new VOTableQueryResultsOutputter();
        qro = voqro;
        break;
    }

    File uploadedFile = null;
    Connection conn = null;
    DBInterface dbi = null;

    try {
        double rad = 0;
        String inputFilename = fi.getName();
        rad = Double.parseDouble(radString);

        if (fi == null) {
            throw new CrossMatchServletException("File should be specified" + fileItemList.size());
        }
        long size = fi.getSize();

        if (size > 10000000) {
            throw new CrossMatchServletException("File is too big");
        }
        if (size == 0) {
            throw new CrossMatchServletException("File must not be empty");
        }

        if (format.equals(formats.CSV)) {
            if ((raColumn == null) || (decColumn == null)) {
                throw new CrossMatchServletException(
                        "When you use the CSV format, you must specify which columns contain RA and DEC");
            }
        }

        uploadedFile = File.createTempFile("crossmatch", ".dat", new File("/tmp/"));
        try {
            fi.write(uploadedFile);
        } catch (Exception e) {
            throw new CrossMatchServletException("Error in writing your data in the temporary file");
        }

        logger.debug("File written");
        String[] userPasswd = sai_cas.Parameters.getDefaultTempDBUserPasswd();
        String tempUser = userPasswd[0];
        String tempPasswd = userPasswd[1];
        conn = DBConnection.getPooledPerUserConnection(tempUser, tempPasswd);
        dbi = new DBInterface(conn, tempUser);
        Votable vot = null;
        switch (format) {
        case CSV:
            vot = Votable.getVOTableFromCSV(uploadedFile);
            if ((!vot.checkColumnExistance(raColumn)) || (!vot.checkColumnExistance(decColumn))) {
                throw new CrossMatchServletException(
                        "The column names specified as RA and DEC should be present in the CSV file");
            }
            break;
        case VOTABLE:
            vot = new Votable(uploadedFile);
            break;
        }
        vot.randomizeResourceName();
        vot.randomizeTableName();
        String userDataSchema = dbi.getUserDataSchemaName();
        String tableName = vot.insertDataToDB(dbi, userDataSchema);
        dbi.analyze(userDataSchema, tableName);
        String[] raDecArray = dbi.getRaDecColumns(cat, tab);
        String[] raDecArray1 = null;
        switch (format) {
        case VOTABLE:
            raDecArray1 = dbi.getRaDecColumnsFromUCD(userDataSchema, tableName);
            if (raDecArray1 == null) {
                throw new CrossMatchServletException("Error occured: "
                        + "You must have the columns in the table having the UCD of alpha or delta ('POS_EQ_RA_MAIN', 'POS_EQ_DEC_MAIN') to do the crossmatch");
            }
            break;
        case CSV:
            raDecArray1 = new String[2];
            raDecArray1[0] = raColumn;
            raDecArray1[1] = decColumn;
        }

        String outputFilename = cat + "." + (tab == null ? "" : tab) + "_"
                + String.format(Locale.US, "%.4f", rad) + "_" + inputFilename;

        response.setHeader("Content-Disposition", "attachment; filename=" + outputFilename);

        dbi.executeQuery("select * from " + userDataSchema + "." + tableName + " AS a LEFT JOIN " + cat + "."
                + tab + " AS b " + "ON q3c_join(a." + raDecArray1[0] + ",a." + raDecArray1[1] + ",b."
                + raDecArray[0] + ",b." + raDecArray[1] + "," + rad + ")");
        if (format.equals(formats.VOTABLE)) {
            voqro.setResource(cat + "_" + fi.getName());
            voqro.setResourceDescription("This is the table obtained by " + "crossmatching the table " + cat
                    + "." + tab + " with the " + "user supplied table from the file " + fi.getName() + "\n"
                    + "Radius of the crossmatch: " + rad + "deg");
            voqro.setTable("main");
        }
        qro.print(out, dbi);
    } catch (VotableException e) {
        qro.printError(out, "Error occured: " + e.getMessage()
                + "Cannot read the VOTable, probably it is not well formed (remember that you must have 'xmlns=\"http://www.ivoa.net/xml/VOTable/v1.1\"' in the VOTABLE tag)");
    } catch (NumberFormatException e) {
        qro.printError(out, "Error occured: " + e.getMessage());
    } catch (CrossMatchServletException e) {
        qro.printError(out, "Error occured: " + e.getMessage());
    } catch (DBException e) {
        logger.error("DBException " + e);
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        qro.printError(out, "Error occured: " + e + "\nCause: " + e.getCause() + "\nTrace: " + sw);
    } catch (SQLException e) {
        logger.error("SQLException " + e);
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        qro.printError(out, "Error occured: " + e + "\nCause: " + e.getCause() + "\nTrace: " + sw);
    } finally {
        DBInterface.close(dbi, conn, false);
        /* Always rollback */
        try {
            if (uploadedFile != null) {
                uploadedFile.delete();
            }
        } catch (Exception e) {
            logger.error("Failed to delete the temporary file: " + uploadedFile.getCanonicalPath());
        }
    }

}

From source file:service.UploadFile.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {//  w w w .j  a va2s .  c om
        response.setContentType("application/json");
        PrintWriter writer = response.getWriter();
        if (new File(FOLDER).exists()) {
            new File(FOLDER).mkdir();
        }
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
            writer.println("{\"status\":\"Invalid request. Multipart Request needed.\"}");
        } else {
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List<?> items = null;
            try {
                items = upload.parseRequest(request);
            } catch (FileUploadException e) {
                e.printStackTrace(System.err);
            }
            Iterator<?> itr = items.iterator();
            writer.println("{");
            int i = 0;
            while (itr.hasNext()) {
                FileItem item = (FileItem) itr.next();
                if (item.isFormField()) {
                    System.out.println("Form Field " + item.getFieldName() + " : " + item.getString());
                    if (i != 0) {
                        writer.println(",");
                    }
                    writer.println("\"" + item.getFieldName() + "\":\"" + item.getString() + "\"");
                    i++;
                } else {
                    try {
                        String itemName = item.getName();
                        File savedFile = new File(FOLDER, itemName);
                        item.write(savedFile);
                        if (i != 0) {
                            writer.println(",");
                        }
                        writer.println("\"" + itemName + "\":\"" + savedFile.getAbsolutePath() + "\"");
                        i++;
                    } catch (Exception ex) {
                        System.err.println(ex.getMessage());
                    }
                }
                i++;
            }
            writer.println("}");
        }
    } catch (Exception ex) {
        System.err.println(ex.getMessage());
    }
}

From source file:utilities.FileIO.java

public static ArrayList<String> upload(HttpServletRequest request, int type, Study study) {
    ArrayList<String> errors = new ArrayList<String>();
    ArrayList<String> picNames = type == PHOTO ? new ArrayList<String>() : null;

    ServletFileUpload upload = getFileUpload();

    try {/*from w  ww.j a  v a 2 s  .co m*/
        List fileItems = upload.parseRequest(request);
        Iterator iterator = fileItems.iterator();

        while (iterator.hasNext()) {
            FileItem fileItem = (FileItem) iterator.next();
            String fileName = fileItem.getName();

            errors.addAll(type == PHOTO ? uploadPhotos(fileItem, fileName, picNames, study)
                    : uploadTable(fileItem, fileName, study));
        }
    } catch (org.apache.commons.fileupload.FileUploadException e) {
        e.printStackTrace(System.err);
    } catch (Exception e) {
        e.printStackTrace(System.err);
    } finally {
        cleanTempDir();
    }

    errors.addAll(SQL.Helper.insertAndUpdateUploads(type, study, picNames));
    return errors;
}