List of usage examples for org.apache.commons.fileupload FileItem getSize
long getSize();
From source file:com.portfolio.data.attachment.FileServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ===================================================================================== initialize(request);// w ww . ja v a2 s . c o m int userId = 0; int groupId = 0; String user = ""; HttpSession session = request.getSession(true); if (session != null) { Integer val = (Integer) session.getAttribute("uid"); if (val != null) userId = val; val = (Integer) session.getAttribute("gid"); if (val != null) groupId = val; user = (String) session.getAttribute("user"); } Credential credential = null; Connection c = null; try { //On initialise le dataProvider if (ds == null) // Case where we can't deploy context.xml { c = getConnection(); } else { c = ds.getConnection(); } dataProvider.setConnection(c); credential = new Credential(c); } catch (Exception e) { e.printStackTrace(); } /// uuid: celui de la ressource /// /resources/resource/file/{uuid}[?size=[S|L]&lang=[fr|en]] String origin = request.getRequestURL().toString(); /// Rcupration des paramtres String url = request.getPathInfo(); String[] token = url.split("/"); String uuid = token[1]; String size = request.getParameter("size"); if (size == null) size = "S"; String lang = request.getParameter("lang"); if (lang == null) { lang = "fr"; } /// Vrification des droits d'accs if (!credential.hasNodeRight(userId, groupId, uuid, Credential.WRITE)) { response.sendError(HttpServletResponse.SC_FORBIDDEN); //throw new Exception("L'utilisateur userId="+userId+" n'a pas le droit WRITE sur le noeud "+nodeUuid); } String data; String fileid = ""; try { data = dataProvider.getResNode(uuid, userId, groupId); /// Parse les donnes DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); InputSource is = new InputSource(new StringReader("<node>" + data + "</node>")); Document doc = documentBuilder.parse(is); DOMImplementationLS impl = (DOMImplementationLS) doc.getImplementation().getFeature("LS", "3.0"); LSSerializer serial = impl.createLSSerializer(); serial.getDomConfig().setParameter("xml-declaration", false); /// Cherche si on a dj envoy quelque chose XPath xPath = XPathFactory.newInstance().newXPath(); String filterRes = "//filename[@lang=\"" + lang + "\"]"; NodeList nodelist = (NodeList) xPath.compile(filterRes).evaluate(doc, XPathConstants.NODESET); String filename = ""; if (nodelist.getLength() > 0) filename = nodelist.item(0).getTextContent(); if (!"".equals(filename)) { /// Already have one, per language String filterId = "//fileid[@lang='" + lang + "']"; NodeList idlist = (NodeList) xPath.compile(filterId).evaluate(doc, XPathConstants.NODESET); if (idlist.getLength() != 0) { Element fileNode = (Element) idlist.item(0); fileid = fileNode.getTextContent(); } } } catch (Exception e2) { e2.printStackTrace(); } int last = fileid.lastIndexOf("/") + 1; // FIXME temp patch if (last < 0) last = 0; fileid = fileid.substring(last); /// request.getHeader("REFERRER"); /// criture des donnes String urlTarget = "http://" + server + "/" + fileid; // String urlTarget = "http://"+ server + "/user/" + user +"/file/" + uuid +"/"+ lang+ "/ptype/fs"; // Unpack form, fetch binary data and send // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Configure a repository (to ensure a secure temp location is used) /* ServletContext servletContext = this.getServletConfig().getServletContext(); File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir"); factory.setRepository(repository); //*/ // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); String json = ""; HttpURLConnection connection = null; // Parse the request try { List<FileItem> items = upload.parseRequest(request); // Process the uploaded items Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if ("uploadfile".equals(item.getFieldName())) { // Send raw data InputStream inputData = item.getInputStream(); /* URL urlConn = new URL(urlTarget); connection = (HttpURLConnection) urlConn.openConnection(); connection.setDoOutput(true); connection.setUseCaches(false); /// We don't want to cache data connection.setInstanceFollowRedirects(false); /// Let client follow any redirection String method = request.getMethod(); connection.setRequestMethod(method); String context = request.getContextPath(); connection.setRequestProperty("app", context); //*/ String fileName = item.getName(); long filesize = item.getSize(); String contentType = item.getContentType(); // /* connection = CreateConnection(urlTarget, request); connection.setRequestProperty("filename", uuid); connection.setRequestProperty("content-type", "application/octet-stream"); connection.setRequestProperty("content-length", Long.toString(filesize)); //*/ connection.connect(); OutputStream outputData = connection.getOutputStream(); IOUtils.copy(inputData, outputData); /// Those 2 lines are needed, otherwise, no request sent int code = connection.getResponseCode(); String msg = connection.getResponseMessage(); InputStream objReturn = connection.getInputStream(); StringWriter idResponse = new StringWriter(); IOUtils.copy(objReturn, idResponse); fileid = idResponse.toString(); connection.disconnect(); /// Construct Json StringWriter StringOutput = new StringWriter(); JsonWriter writer = new JsonWriter(StringOutput); writer.beginObject(); writer.name("files"); writer.beginArray(); writer.beginObject(); writer.name("name").value(fileName); writer.name("size").value(filesize); writer.name("type").value(contentType); writer.name("url").value(origin); writer.name("fileid").value(fileid); // writer.name("deleteUrl").value(ref); // writer.name("deleteType").value("DELETE"); writer.endObject(); writer.endArray(); writer.endObject(); writer.close(); json = StringOutput.toString(); /* DataOutputStream datawriter = new DataOutputStream(connection.getOutputStream()); byte[] buffer = new byte[1024]; int dataSize; while( (dataSize = inputData.read(buffer,0,buffer.length)) != -1 ) { datawriter.write(buffer, 0, dataSize); } datawriter.flush(); datawriter.close(); //*/ // outputData.close(); // inputData.close(); break; } } } catch (FileUploadException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } /* HttpURLConnection connection = CreateConnection( urlTarget, request ); connection.setRequestProperty("referer", origin); /// Send post data ServletInputStream inputData = request.getInputStream(); DataOutputStream writer = new DataOutputStream(connection.getOutputStream()); byte[] buffer = new byte[1024]; int dataSize; while( (dataSize = inputData.read(buffer,0,buffer.length)) != -1 ) { writer.write(buffer, 0, dataSize); } inputData.close(); writer.close(); /// So we can forward some Set-Cookie String ref = request.getHeader("referer"); /// Prend le JSON du fileserver InputStream in = connection.getInputStream(); InitAnswer(connection, response, ref); BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8")); StringBuilder builder = new StringBuilder(); for( String line = null; (line = reader.readLine()) != null; ) builder.append(line).append("\n"); //*/ /// Envoie la mise jour au backend /* try { PostForm.updateResource(session.getId(), backend, uuid, lang, json); } catch( Exception e ) { e.printStackTrace(); } //*/ connection.disconnect(); /// Renvoie le JSON au client response.setContentType("application/json"); PrintWriter respWriter = response.getWriter(); respWriter.write(json); // RetrieveAnswer(connection, response, ref); dataProvider.disconnect(); }
From source file:admin.controller.ServletAddLooks.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./* ww w . j av a2s . c o m*/ * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.processRequest(request, response); String filePath; String fileName, fieldName; Looks look; RequestDispatcher request_dispatcher; String look_name = null; Integer organization_id = 0; boolean check; look = new Looks(); check = false; response.setContentType("text/html;charset=UTF-8"); File file; int maxFileSize = 5000 * 1024; int maxMemSize = 5000 * 1024; try { String uploadPath = AppConstants.LOOK_IMAGES_HOME; // Verify the content type String contentType = request.getContentType(); if ((contentType.indexOf("multipart/form-data") >= 0)) { DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File("/tmp")); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (fi.isFormField()) { // Get the uploaded file parameters fieldName = fi.getFieldName(); try { if (fieldName.equals("lookname")) { look_name = fi.getString(); } if (fieldName.equals("organization")) { organization_id = Integer.parseInt(fi.getString()); } } catch (Exception e) { logger.log(Level.SEVERE, "Exception while getting the look_name and organization_id", e); } } else { check = look.checkAvailability(look_name, organization_id); if (check == false) { fieldName = fi.getFieldName(); fileName = fi.getName(); File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdirs(); } // int inStr = fileName.indexOf("."); // String Str = fileName.substring(0, inStr); // // fileName = look_name + "_" + Str + ".png"; fileName = look_name + "_" + fileName; boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); filePath = uploadPath + File.separator + fileName; File storeFile = new File(filePath); fi.write(storeFile); look.addLooks(look_name, fileName, organization_id); response.sendRedirect(request.getContextPath() + "/admin/looks.jsp"); } else { response.sendRedirect(request.getContextPath() + "/admin/looks.jsp?exist=exist"); } } } } else { } } catch (Exception ex) { logger.log(Level.SEVERE, "Exception while uploading the Looks image", ex); } }
From source file:admin.controller.ServletAddCategories.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods.// w w w . ja v a 2s . c o m * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.processRequest(request, response); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); File file; int maxFileSize = 5000 * 1024; int maxMemSize = 5000 * 1024; try { String uploadPath = AppConstants.ORG_CATEGORIES_HOME; // Verify the content type String contentType = request.getContentType(); if ((contentType.indexOf("multipart/form-data") >= 0)) { DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File(AppConstants.TMP_FOLDER)); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); out.println("<html>"); out.println("<head>"); out.println("<title>JSP File upload</title>"); out.println("</head>"); out.println("<body>"); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (fi.isFormField()) { // Get the uploaded file parameters field_name = fi.getFieldName(); if (field_name.equals("category_name")) { category_name = fi.getString(); } if (field_name.equals("organization")) { organization_id = fi.getString(); uploadPath = uploadPath + File.separator + organization_id; } } else { field_name = fi.getFieldName(); file_name = fi.getName(); if (file_name != "") { check = categories.checkAvailability(category_name, Integer.parseInt(organization_id)); if (check == false) { File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdirs(); } //we need to save file name directly // int inStr = file_name.indexOf("."); // String Str = file_name.substring(0, inStr); // file_name = category_name + "_" + Str + ".jpeg"; file_name = category_name + "_" + file_name; boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); String filePath = uploadPath + File.separator + file_name; File storeFile = new File(filePath); fi.write(storeFile); categories.addCategories(Integer.parseInt(organization_id), category_name, file_name); out.println("Uploaded Filename: " + filePath + "<br>"); response.sendRedirect(request.getContextPath() + "/admin/categories.jsp"); } else { response.sendRedirect( request.getContextPath() + "/admin/categories.jsp?exist=exist"); } } } } out.println("</body>"); out.println("</html>"); } else { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); } } catch (Exception ex) { logger.log(Level.SEVERE, "Exception while adding categories", ex); } finally { out.close(); } }
From source file:admin.controller.ServletChangeLooks.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./* w w w.jav a2 s. c o m*/ * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.processRequest(request, response); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String filePath = ""; String fileName, fieldName, uploadPath, deletePath, file_name_to_delete = "", uploadPath1; Looks look; RequestDispatcher request_dispatcher; String lookname = "", lookid = ""; Integer organization = 0; look = new Looks(); boolean check = false; File file; int maxFileSize = 5000 * 1024; int maxMemSize = 5000 * 1024; try { // Verify the content type String contentType = request.getContentType(); if ((contentType.indexOf("multipart/form-data") >= 0)) { DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File(AppConstants.TMP_FOLDER)); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); out.println("<html>"); out.println("<head>"); out.println("<title>JSP File upload</title>"); out.println("</head>"); out.println("<body>"); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (fi.isFormField()) { // Get the uploaded file parameters fieldName = fi.getFieldName(); if (fieldName.equals("lookname")) { lookname = fi.getString(); } if (fieldName.equals("lookid")) { lookid = fi.getString(); } if (fieldName.equals("organization")) { organization = Integer.parseInt(fi.getString()); } file_name_to_delete = look.getFileName(Integer.parseInt(lookid)); } else { check = look.checkAvailabilities(Integer.parseInt(lookid), lookname, organization); if (check == false) { fieldName = fi.getFieldName(); fileName = fi.getName(); File uploadDir = new File(AppConstants.LOOK_IMAGES_HOME); if (!uploadDir.exists()) { uploadDir.mkdirs(); } // int inStr = fileName.indexOf("."); // String Str = fileName.substring(0, inStr); // // fileName = lookname + "_" + Str + ".png"; fileName = lookname + "_" + fileName; boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); String file_path = AppConstants.LOOK_IMAGES_HOME + File.separator + fileName; String delete_path = AppConstants.LOOK_IMAGES_HOME + File.separator + file_name_to_delete; File deleteFile = new File(delete_path); deleteFile.delete(); File storeFile = new File(file_path); fi.write(storeFile); out.println("Uploaded Filename: " + filePath + "<br>"); look.changeLooks(Integer.parseInt(lookid), lookname, fileName, organization); response.sendRedirect(request.getContextPath() + "/admin/looks.jsp"); } else { response.sendRedirect( request.getContextPath() + "/admin/editlook.jsp?exist=exist&look_id=" + lookid + "&look_name=" + lookname + "&organization_id=" + organization + "&image_file_name=" + file_name_to_delete); } } } out.println("</body>"); out.println("</html>"); } else { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); } } catch (Exception ex) { logger.log(Level.SEVERE, "Exception while editing the looks", ex); } finally { out.close(); } }
From source file:fr.paris.lutece.plugins.directory.service.upload.DirectoryAsynchronousUploadHandler.java
/** * Performs an upload action./*from w w w. j a v a 2s .c o m*/ * * @param request the HTTP request * @param strUploadAction the name of the upload action * @param map the map of <idEntry, RecordFields> * @param record the record * @param plugin the plugin * @throws DirectoryErrorException exception if there is an error */ public void doUploadAction(HttpServletRequest request, String strUploadAction, Map<String, List<RecordField>> map, Record record, Plugin plugin) throws DirectoryErrorException { // Get the name of the upload field String strIdEntry = (strUploadAction.startsWith(UPLOAD_SUBMIT_PREFIX) ? strUploadAction.substring(UPLOAD_SUBMIT_PREFIX.length()) : strUploadAction.substring(UPLOAD_DELETE_PREFIX.length())); String strFieldName = buildFieldName(strIdEntry); if (strUploadAction.startsWith(UPLOAD_SUBMIT_PREFIX)) { // A file was submitted MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; FileItem fileItem = multipartRequest.getFile(strFieldName); if (fileItem != null) { // Check if the file can be uploaded first List<FileItem> listFileItemsToUpload = new ArrayList<FileItem>(); listFileItemsToUpload.add(fileItem); HttpSession session = request.getSession(); // The following method call throws a DirectoryErrorException if the file cannot be uploaded canUploadFiles(strFieldName, getFileItems(strIdEntry, session.getId()), listFileItemsToUpload, request.getLocale()); // Add the file to the map of <idEntry, RecordFields> IEntry entry = EntryHome.findByPrimaryKey(DirectoryUtils.convertStringToInt(strIdEntry), plugin); if (entry != null) { RecordField recordField = new RecordField(); recordField.setRecord(record); recordField.setEntry(entry); String strFilename = FileUploadService.getFileNameOnly(fileItem); if ((fileItem.get() != null) && (fileItem.getSize() < Integer.MAX_VALUE)) { if (entry instanceof EntryTypeDownloadUrl) { recordField.setFileName(strFilename); recordField.setFileExtension(FileSystemUtil.getMIMEType(strFilename)); } else { PhysicalFile physicalFile = new PhysicalFile(); physicalFile.setValue(fileItem.get()); File file = new File(); file.setPhysicalFile(physicalFile); file.setTitle(strFilename); file.setSize((int) fileItem.getSize()); file.setMimeType(FileSystemUtil.getMIMEType(strFilename)); recordField.setFile(file); } } List<RecordField> listRecordFields = map.get(strIdEntry); if (listRecordFields == null) { listRecordFields = new ArrayList<RecordField>(); } listRecordFields.add(recordField); map.put(strIdEntry, listRecordFields); } // Add to the asynchronous uploaded files map addFileItemToUploadedFile(fileItem, strIdEntry, request.getSession()); } } else if (strUploadAction.startsWith(UPLOAD_DELETE_PREFIX)) { HttpSession session = request.getSession(false); if (session != null) { // Some previously uploaded files were deleted // Build the prefix of the associated checkboxes String strPrefix = UPLOAD_CHECKBOX_PREFIX + strIdEntry; // Look for the checkboxes in the request Enumeration<String> enumParamNames = request.getParameterNames(); List<Integer> listIndexes = new ArrayList<Integer>(); while (enumParamNames.hasMoreElements()) { String strParamName = enumParamNames.nextElement(); if (strParamName.startsWith(strPrefix)) { // Get the index from the name of the checkbox listIndexes.add(Integer.parseInt(strParamName.substring(strPrefix.length()))); } } Collections.sort(listIndexes); Collections.reverse(listIndexes); for (int nIndex : listIndexes) { // Remove from the map of <idEntry, RecordField> List<RecordField> listRecordFields = map.get(strIdEntry); if (listRecordFields != null) { listRecordFields.remove(nIndex); } // Remove from the asynchronous uploaded files map removeFileItem(strIdEntry, session.getId(), nIndex); } } } }
From source file:com.nartex.FileManager.java
public JSONObject add() { JSONObject fileInfo = null;//from w ww .j a v a 2 s .c o m Iterator it = this.files.iterator(); String mode = ""; String currentPath = ""; if (!it.hasNext()) { this.error(lang("INVALID_FILE_UPLOAD")); } else { String allowed[] = { ".", "-" }; FileItem item = null; String fileName = ""; try { while (it.hasNext()) { item = (FileItem) it.next(); if (item.isFormField()) { if (item.getFieldName().equals("mode")) { mode = item.getString(); if (!mode.equals("add")) { this.error(lang("INVALID_FILE_UPLOAD")); } } else if (item.getFieldName().equals("currentpath")) { currentPath = item.getString(); } } else if (item.getFieldName().equals("newfile")) { fileName = item.getName(); // strip possible directory (IE) int pos = fileName.lastIndexOf(File.separator); if (pos > 0) fileName = fileName.substring(pos + 1); boolean error = false; long maxSize = 0; if (config.getProperty("upload-size") != null) { maxSize = Integer.parseInt(config.getProperty("upload-size")); if (maxSize != 0 && item.getSize() > (maxSize * 1024 * 1024)) { this.error(sprintf(lang("UPLOAD_FILES_SMALLER_THAN"), maxSize + "Mb")); error = true; } } if (!error) { if (!isImage(fileName) && (config.getProperty("upload-imagesonly") != null && config.getProperty("upload-imagesonly").equals("true") || this.params.get("type") != null && this.params.get("type").equals("Image"))) { this.error(lang("UPLOAD_IMAGES_ONLY")); } else { fileInfo = new JSONObject(); LinkedHashMap<String, String> strList = new LinkedHashMap<String, String>(); strList.put("fileName", fileName); fileName = (String) cleanString(strList, allowed).get("fileName"); if (config.getProperty("upload-overwrite").equals("false")) { fileName = this.checkFilename(this.documentRoot + currentPath, fileName, 0); } File saveTo = new File(this.documentRoot + currentPath + fileName); item.write(saveTo); fileInfo.put("Path", currentPath); fileInfo.put("Name", fileName); fileInfo.put("Error", ""); fileInfo.put("Code", 0); } } } } } catch (Exception e) { this.error(lang("INVALID_FILE_UPLOAD")); } } return fileInfo; }
From source file:it.univaq.servlet.Upload_pub.java
/** * Handles the HTTP <code>GET</code> method. * * @param request servlet request//www .ja v a 2s . c o m * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected boolean action_upload(HttpServletRequest request) throws FileUploadException, Exception { HttpSession s = SecurityLayer.checkSession(request); if (ServletFileUpload.isMultipartContent(request)) { //dichiaro mappe Map pubb = new HashMap(); Map rist = new HashMap(); Map key = new HashMap(); Map files = new HashMap(); int idristampa = 0; //La dimensione massima di ogni singolo file su system int dimensioneMassimaDelFileScrivibieSulFileSystemInByte = 10 * 1024 * 1024; // 10 MB //Dimensione massima della request int dimensioneMassimaDellaRequestInByte = 20 * 1024 * 1024; // 20 MB // Creo un factory per l'accesso al filesystem DiskFileItemFactory factory = new DiskFileItemFactory(); //Setto la dimensione massima di ogni file, opzionale factory.setSizeThreshold(dimensioneMassimaDelFileScrivibieSulFileSystemInByte); // Istanzio la classe per l'upload ServletFileUpload upload = new ServletFileUpload(factory); // Setto la dimensione massima della request upload.setSizeMax(dimensioneMassimaDellaRequestInByte); // Parso la riquest della servlet, mi viene ritornata una lista di FileItem con // tutti i field sia di tipo file che gli altri List<FileItem> items = upload.parseRequest(request); /* * La classe usata non permette di riprendere i singoli campi per * nome quindi dovremmo scorrere la lista che ci viene ritornata con * il metodo parserequest */ //scorro per tutti i campi inviati for (int i = 0; i < items.size(); i++) { FileItem item = items.get(i); // Controllo se si tratta di un campo di input normale if (item.isFormField()) { // Prendo solo il nome e il valore String name = item.getFieldName(); String value = item.getString(); if (name.equals("titolo") && !name.isEmpty() || name.equals("autore") && !name.isEmpty() || name.equals("descrizione") && !name.isEmpty()) { pubb.put(name, value); } else if (name.equals("isbn") && !name.isEmpty() || name.equals("editore") && !name.isEmpty() || name.equals("lingua") && !name.isEmpty() || name.equals("numpagine") && !name.isEmpty()) { rist.put(name, value); } else if (name.equals("datapub") && !name.isEmpty()) { rist.put(name, value); } else if (name.equals("key1") || name.equals("key2") || name.equals("key3") || name.equals("key4")) { key.put(name, value); } else return false; } // Se si stratta invece di un file else { // Dopo aver ripreso tutti i dati disponibili name,type,size //String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType(); long sizeInBytes = item.getSize(); if (contentType.equals("image/jpeg") && !fileName.isEmpty()) { //li salvo nella mappa files.put("name", fileName); files.put("type", contentType); files.put("size", sizeInBytes); //li scrivo nel db //Database.connect(); Database.insertRecord("files", files); //Database.close(); ResultSet rs1 = Database.selectRecord("files", "name='" + files.get("name") + "'"); if (!isNull(rs1)) { while (rs1.next()) { rist.put("copertina", rs1.getInt("id")); } } // Posso scriverlo direttamente su filesystem if (true) { File uploadedFile = new File( getServletContext().getInitParameter("uploads.directory") + fileName); // Solo se veramente ho inviato qualcosa if (item.getSize() > 0) { item.write(uploadedFile); } } } else if (!fileName.isEmpty()) { files.put("name", fileName); files.put("type", contentType); files.put("size", sizeInBytes); //li scrivo nel db //Database.connect(); Database.insertRecord("files", files); //Database.close(); ResultSet rs4 = Database.selectRecord("files", "name='" + files.get("name") + "'"); if (!isNull(rs4)) { while (rs4.next()) { rist.put("download", rs4.getInt("id")); } } // Posso scriverlo direttamente su filesystem if (true) { File uploadedFile = new File( getServletContext().getInitParameter("uploads.directory") + fileName); // Solo se veramente ho inviato qualcosa if (item.getSize() > 0) { item.write(uploadedFile); } } } } } //inserisco dati nel db pubb.put("idutente", s.getAttribute("userid")); // Database.connect(); //prova incremento campo inserite per utenti piu attivi pubb.put("idutente", s.getAttribute("userid")); // Database.connect(); int userid = (int) s.getAttribute("userid"); //prova incremento campo inserite per utenti piu attivi // inserisco parole chiave Database.simpleupdateRecord("utenti", "inserite=inserite+1", "id=" + userid); // inserisco parole chiave Database.insertRecord("keyword", key); //seleziono id parole chiave appena inserite ResultSet rs2 = Database.selectRecord("keyword", "key1='" + key.get("key1") + "'&&" + "key2='" + key.get("key2") + "'&&" + "key3='" + key.get("key3") + "'&&" + "key4='" + key.get("key4") + "'"); if (!isNull(rs2)) { while (rs2.next()) { //e inserisco id keyword nella tab pubblicazione pubb.put("keyword", rs2.getInt("id")); } } //inserisco ora la pubblicazione con tutti i dati Database.insertRecord("pubblicazione", pubb); //seleziono id pubblicazione appena inserita ResultSet rs = Database.selectRecord("pubblicazione", "titolo='" + pubb.get("titolo") + "'"); //e inserisco l'id nella tab ristampa e tab files while (rs.next()) { rist.put("idpub", rs.getInt("id")); } ResultSet rs3 = Database.selectRecord("ristampa", "isbn=" + rist.get("isbn")); while (rs3.next()) { idristampa = rs3.getInt("id"); } //inserisco dati in tab ristampa // Database.updateRecord("ristampa", rist, "id " +idristampa); Database.insertRecord("ristampa", rist); // Database.close(); //vado alla pagina di corretto inserimento // FreeMarker.process("home.html", pubb, response, getServletContext()); return true; } else return false; }
From source file:hu.sztaki.lpds.pgportal.portlets.asm.ClientError.java
@SuppressWarnings("empty-statement") public void doUploadLigands(ActionRequest request, ActionResponse response) { try {/*from ww w .j a va 2s . c o m*/ // MULTIPART REQUEST ActionRequest temp_req = request; DiskFileItemFactory factory = new DiskFileItemFactory(); PortletFileUpload pfu = new PortletFileUpload(factory); List fileItems = pfu.parseRequest(temp_req); // ligands Iterator iter = fileItems.iterator(); ArrayList<FileItem> file2upload = new ArrayList<FileItem>(); FileItem receptorFileItem = null; FileItem configFileItem = null; String vina_configuration = ""; String vina_best_result = ""; String rep_owner = ""; String task_name = ""; while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { // TEXT FIELD if (item.getFieldName().equals("vina_configuration")) { vina_configuration = item.getString(); } if (item.getFieldName().startsWith("vina_best_result")) { vina_best_result = item.getString(); } if (item.getFieldName().startsWith("rep_owner")) { rep_owner = item.getString(); } if (item.getFieldName().startsWith("task_name")) { task_name = item.getString(); } } else { // FILE UPLOAD String fieldName = item.getFieldName(); String fileName = item.getName(); long sizeInBytes = item.getSize(); if (fieldName.equals("receptor")) { receptorFileItem = item; } if (fieldName.equals("ligands")) { file2upload.add(item); } if (fieldName.equals("vina_config_file")) { configFileItem = item; } } } //IMPORT NEW WORKFLOW INSTANCE // selected_wf_type="122"; String newWfinstanceID = selected_wf_type + "_" + task_name; String ruser = request.getRemoteUser(); rep_owner = ruser; String userId = rep_owner; String rowner = request.getParameter("owner"); selected_wf = importWorkflow(rep_owner, ruser, selected_wf_type, newWfinstanceID); if (selected_wf.length() < 3) { throwError("Import " + newWfinstanceID + " workflow is failed", 1); } String job_generator = "Generator"; String port_input_receptor = "5"; //input-receptor.pdbqt String port_vina_config = "4"; //vina-config.txt String port_input_ligands = "3"; //input-ligands.zip String cmd_parameter_wus_nr = ""; // number of WUs String job_collector = "collector.sh"; String cmd_parameter_best = ""; // number of Best results // UPLOAD LIGAND ZIP FILE String selected_job = job_generator; String selected_port = port_input_ligands; for (FileItem f : file2upload) { if (f.getName().endsWith(".zip")) { File uploadedFile = asm_service.uploadFiletoPortalServer(f, userId, f.getName()); asm_service.placeUploadedFile(userId, uploadedFile, selected_wf, selected_job, selected_port); } } /* // UPLOAD MULTIPLE PDBQT LIGAND FILE String ligandDir="/tmp/wf_dir_ligands"; String zipName="upload.zip"; Runtime.getRuntime().exec("rm -rf "+ligandDir+"/"+zipName); for(FileItem f:file2upload){ File uploadedFile = asm_service.uploadFiletoPortalServer(f, userId, f.getName()); System.out.println("jaj"+uploadedFile.getAbsolutePath()); // PREPARE UPLOADED FILES to SUBMIT MOVE AND COMPRESS Runtime.getRuntime().exec("cp "+uploadedFile+" "+ligandDir); Runtime.getRuntime().exec("zip "+ligandDir+"/"+zipName+" "+ligandDir+"/"+uploadedFile.getName()); } File ligandsFile=new File(ligandDir+"/"+zipName); selected_port = "0"; asm_service.placeUploadedFile(userId, ligandsFile, selected_wf, selected_job, selected_port); */ // UPLOAD RECEPTOR PDBQT FILE selected_port = port_input_receptor; File receptorFile = asm_service.uploadFiletoPortalServer(receptorFileItem, userId, receptorFileItem.getName()); asm_service.placeUploadedFile(userId, receptorFile, selected_wf, selected_job, selected_port); // SETUP CONFIGURATION if (configFileItem == null) { String content = vina_configuration; selected_port = port_vina_config; asm_service.setInputText(userId, content, selected_wf, selected_job, selected_port); } else { selected_port = port_vina_config; File configFile = asm_service.uploadFiletoPortalServer(configFileItem, userId, configFileItem.getName()); asm_service.placeUploadedFile(userId, configFile, selected_wf, selected_job, selected_port); } // WUs number String wu_content = "5"; asm_service.setCommandLineArg(userId, selected_wf, selected_job, wu_content); // setup Best result number, at the collector job argument String best_content = vina_best_result; selected_job = job_collector; asm_service.setCommandLineArg(userId, selected_wf, selected_job, best_content); asm_service.submit(userId, selected_wf, "", ""); request.setAttribute("nextJSP", DISPLAY_PAGE); throwError("Wow! Submitted task! Success! Wait for run, and check eventually!", 10); String nextJSP = DISPLAY_PAGE; PortletRequestDispatcher dispatcher; dispatcher = getPortletContext().getRequestDispatcher(nextJSP); dispatcher.include(request, response); } catch (Exception ex) { throwError(ex.getMessage(), 10); } }
From source file:com.Voxce.Controllers.TrialsController.java
public ModelAndView SubmitUserCV(HttpServletRequest request, HttpServletResponse response) throws Exception { if (!ServletFileUpload.isMultipartContent(request)) { throw new IllegalArgumentException( "Request is not multipart, please 'multipart/form-data' enctype for your form."); }/* w w w . j a v a 2 s . c o m*/ List<FileItem> CVitems; ServletFileUpload uploadHandler = new ServletFileUpload(new DiskFileItemFactory()); PrintWriter writer = response.getWriter(); response.setContentType("text/plain"); try { CVitems = uploadHandler.parseRequest(request); for (FileItem item2 : CVitems) { if (!item2.isFormField()) { if (item2.getSize() > 9999000) { writer.write("{\"name\":\"" + "Sorry File Size is larger then 9 MB" + "\",\"type\":\"" + item2.getContentType() + "\",\"size\":\"" + item2.getSize() + "\"}"); break; // assume we only get one file at a time } else { CVitem = item2; // System.out.println("Name =" + item2.getName() + " Size=" + item2.getSize() + " type =" + item2.getContentType()); writer.write("{\"name\":\"" + item2.getName() + "\",\"type\":\"" + item2.getContentType() + "\",\"size\":\"" + item2.getSize() + "\"}"); break; // assume we only get one file at a time } } } } catch (FileUploadException e) { throw new RuntimeException(e); } catch (Exception e) { throw new RuntimeException(e); } finally { writer.close(); } return new ModelAndView("usercv"); }
From source file:com.Voxce.Controllers.TrialsController.java
public ModelAndView UploadContract(HttpServletRequest request, HttpServletResponse response) throws Exception { if (!ServletFileUpload.isMultipartContent(request)) { throw new IllegalArgumentException( "Request is not multipart, please 'multipart/form-data' enctype for your form."); }/*from w ww . java 2s . co m*/ ServletFileUpload uploadHandler = new ServletFileUpload(new DiskFileItemFactory()); PrintWriter writer = response.getWriter(); response.setContentType("text/plain"); List<FileItem> Contractitems; try { Contractitems = uploadHandler.parseRequest(request); for (FileItem item2 : Contractitems) { if (!item2.isFormField()) { if (item2.getSize() > 9999000) { writer.write("{\"name\":\"" + "Sorry File Size is larger then 9 MB" + "\",\"type\":\"" + item2.getContentType() + "\",\"size\":\"" + item2.getSize() + "\"}"); break; // assume we only get one file at a time } else { Contractitem = item2; System.out.println("Name =" + item2.getName() + " Size=" + item2.getSize() + " type =" + item2.getContentType()); writer.write("{\"name\":\"" + item2.getName() + "\",\"type\":\"" + item2.getContentType() + "\",\"size\":\"" + item2.getSize() + "\"}"); break; // assume we only get one file at a time } } } } catch (FileUploadException e) { throw new RuntimeException(e); } catch (Exception e) { throw new RuntimeException(e); } finally { writer.close(); } return new ModelAndView("contracts"); }