Created
November 15, 2012 15:59
-
-
Save HiroNakamura/4079371 to your computer and use it in GitHub Desktop.
Subir archivos xml, pdf, doc,zip
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package org.servlet; | |
| import java.io.IOException; | |
| import javax.servlet.ServletException; | |
| import javax.servlet.http.HttpServlet; | |
| import javax.servlet.http.HttpServletRequest; | |
| import javax.servlet.http.HttpServletResponse; | |
| import java.io.File; | |
| import java.util.Iterator; | |
| import java.util.List; | |
| import org.apache.commons.fileupload.FileItem; | |
| import org.apache.commons.fileupload.FileItemFactory; | |
| import org.apache.commons.fileupload.FileUploadException; | |
| import org.apache.commons.fileupload.disk.DiskFileItemFactory; | |
| import org.apache.commons.fileupload.servlet.ServletFileUpload; | |
| //import org.siir.client.monarca.control.UnZip; | |
| /** | |
| * | |
| * @author fernando | |
| * | |
| */ | |
| public class UploadZipXmlPdf extends HttpServlet { | |
| private static final long serialVersionUID = 6098745782027999297L; | |
| private static final String DIRECTORIO = "/home/algo/"; | |
| private static final long MAXIMO = 1000000000; | |
| private static final String TIPO = "application/zip"; | |
| private static final String TIPO2 = "application/pdf"; | |
| private static final String TIPO3 = "text/xml"; | |
| private static final String CONTENT_TYPE_UNACCEPTABLE = "{error: 'Archivo no subido. "+ "Solo archivos *.zip,*.xml y/o *.pdf pueden subirse'}"; | |
| private static final String SIZE_UNACCEPTABLE = "{error: 'Archivo no subido. El taman\u00d1o del archivo solo puede ser de "+ MAXIMO + " bytes o menos'}"; | |
| private static final String SUCCESS_MESSAGE ="{message: 'Archivo subido correctamente'}"; | |
| @Override | |
| public void doPost(HttpServletRequest request, | |
| HttpServletResponse response) throws ServletException, | |
| IOException { | |
| FileItemFactory factory = new DiskFileItemFactory(); | |
| ServletFileUpload upload = new ServletFileUpload(factory); | |
| info("directorio de descarga: "+DIRECTORIO); | |
| List items = null; | |
| String json = null; | |
| try { | |
| items = upload.parseRequest(request); | |
| } catch (FileUploadException e) { | |
| error("error al subir archivo: ["+e+"] la causa: ["+e.getCause()+"]"); | |
| } | |
| Iterator it = items.iterator(); | |
| while (it.hasNext()) { | |
| FileItem item = (FileItem) it.next(); | |
| System.out.println("Nombre del fichero: "+item.getName()); | |
| info("Nombre del fichero: "+item.getName()); | |
| json = processFile(item); | |
| } | |
| response.setContentType("text/plain"); | |
| response.getWriter().write(json); | |
| } | |
| private String processFile(FileItem item) { | |
| if (!isContentTypeAcceptable(item)) | |
| return CONTENT_TYPE_UNACCEPTABLE; | |
| if (!isSizeAcceptable(item)) | |
| return SIZE_UNACCEPTABLE; | |
| File uploadedFile =new File(DIRECTORIO +item.getName()); | |
| //UnZip.unzipFile(new File(DIRECTORIO +item.getName())); | |
| String message = null; | |
| try { | |
| item.write(uploadedFile); | |
| message = SUCCESS_MESSAGE; | |
| info(">>>> "+message); | |
| } | |
| catch (Exception e) { | |
| error("error al subir archivo: ["+e+"] la causa: ["+e.getCause()+"]"); | |
| } | |
| return message; | |
| } | |
| private boolean isSizeAcceptable(FileItem item) { | |
| return item.getSize() <= MAXIMO; | |
| } | |
| private boolean isContentTypeAcceptable(FileItem item) { | |
| return item.getContentType().equals(TIPO)|| item.getContentType().equals(TIPO2)|| item.getContentType().equals(TIPO3); | |
| } | |
| public static native void error(Object obj)/*-{ | |
| console.error(obj); | |
| }-*/; | |
| public static native void info(Object obj)/*-{ | |
| console.log(obj); | |
| }-*/; | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
package org.siir.client.gui.recepcion;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormHandler;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormSubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormSubmitEvent;
import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.Record;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.SimpleStore;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.MessageBox;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.form.ComboBox;
import com.gwtext.client.widgets.form.FieldSet;
import com.gwtext.client.widgets.form.Label;
import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.siir.client.GWTServiceXML;
import org.siir.client.GWTServiceXMLAsync;
import org.siir.client.modelo.xml.Numero;
import org.siir.client.modelo.xml.RevistaNumero;
import org.siir.client.modelo.xml.TipoCarga;
import org.siir.client.modelo.xml.TipoRepositorio;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.ExtElement;
import com.gwtext.client.core.Function;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.MemoryProxy;
import com.gwtext.client.widgets.ToolTip;
import com.gwtext.client.widgets.Window;
import com.gwtext.client.widgets.grid.BaseColumnConfig;
import com.gwtext.client.widgets.grid.ColumnConfig;
import com.gwtext.client.widgets.grid.ColumnModel;
import com.gwtext.client.widgets.grid.EditorGridPanel;
import com.gwtext.client.widgets.grid.GridEditor;
import com.gwtext.client.widgets.grid.GridPanel;
import com.gwtext.client.widgets.grid.GridView;
import com.gwtext.client.widgets.grid.RowNumberingColumnConfig;
import com.gwtext.client.widgets.grid.RowParams;
import com.gwtext.client.widgets.grid.event.GridCellListenerAdapter;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import org.siir.client.GWTServiceDescarga;
import org.siir.client.GWTServiceDescargaAsync;
import org.siir.client.GWTServiceUtil;
import org.siir.client.GWTServiceUtilAsync;
import org.siir.client.gui.GUIMenu;
import org.siir.client.gui.xml.GUIObtenArribosByXml;
import org.siir.client.gui.xml.GUIPanelVistaPrevia;
import org.siir.client.gui.xml.GridPanelForNewArticles;
import org.siir.client.modelo.arribos.ArriboDescarga;
import org.siir.client.modelo.xml.ArticuloAModificar;
import org.siir.client.modelo.xml.ModeloRedalyc.ModeloRedalyc;
/**
*
@author fernando
*/
public class GUIUploadXmlZipOJS {
private Panel panel;
private FileUpload upload;
private String claveUsuario;
private ComboBox comboRepositorio;
private Button botonSubirZip;
private Button continuarButton;
private FieldSet fieldComboRepo;
private FieldSet fieldUploadZip;
private FieldSet fieldInformacion;
private Label labelInfoCargada;
private Label labelInfoConfirmacion;
private VerticalPanel panelInfoAuxiliar;
private VerticalPanel panelZip;
private HorizontalPanel horizontalPanel;
private TipoRepositorio tipoRepositorio;
private Long claveRepositorio;
private String ruta = "/home/sr/S/xmls/";//ruta
private String rutaAlDirectorioXML = "";
private FormPanel formZip;
private ComboBox comboBoxDeArticulos;
private List listaDeCambios;
private static HashMap nuevosNumeros;
private int totalDeNumerosNuevos = 0;
private String tituloOriginal;
private final ExtElement maskElement = new ExtElement(GUIMenu.tabPanel.getElement());
private Store store;
private String claveArribo;
private boolean onlyRead;
private Window window;
public GUIUploadXmlZipOJS() {
this.onlyRead = false;
}
public boolean isOnlyRead() {
return onlyRead;
}
public void setOnlyRead(boolean onlyRead) {
this.onlyRead = onlyRead;
}
public void setWindow(Window window) {
this.window = window;
}
private Window getWindow() {
return this.window;
}
public void setClaveArribo(String claveArribo) {
this.claveArribo = claveArribo;
}
public String getClaveArribo() {
return this.claveArribo;
}
public String getClaveUsuario() {
return claveUsuario;
}
public void setClaveUsuario(String claveUsuario) {
this.claveUsuario = claveUsuario;
}
/**
crea el panel principal que contiene la informacion de todo el
proceso de parseo de los xml
@return
*/
public Panel getGUI() {
consoleLog("Clave Arr: " + getClaveArribo());
panel = new Panel("XML");
panel.setFrame(true);
//panel.setWidth(1152);
panel.setWidth("600");
panel.setAutoScroll(false);
/panel para agregar los forms/
VerticalPanel vPanel = new VerticalPanel();
vPanel.setSpacing(0);
vPanel.setWidth(panel.getWidth() + "px");
vPanel.setHorizontalAlignment(HasAlignment.ALIGN_CENTER);
/field para el combo/
fieldComboRepo = new FieldSet();
fieldComboRepo.setPaddings(0, 10, 10, 0);
fieldComboRepo.setBorder(false);
/combo de repositorios/
HorizontalPanel comboPanel = new HorizontalPanel();
comboPanel.setSpacing(5);
comboPanel.add(new com.google.gwt.user.client.ui.Label("Repositorio:"));
//comboRepositorio = new ComboBox();
comboRepositorio = getComboRepo();
comboPanel.add(comboRepositorio);
fieldComboRepo.add(comboPanel);
////////////////////////////////vPanel.add(fieldComboRepo);
vPanel.setCellHorizontalAlignment(fieldComboRepo, HasAlignment.ALIGN_CENTER);
//// panelInfo.add(fieldConfirmacion);
//// panelInfo.setCellHorizontalAlignment(fieldConfirmacion, HasAlignment.ALIGN_CENTER);
/panel contenedor de los botones cancelar y continuar/
horizontalPanel = new HorizontalPanel();
horizontalPanel.setSpacing(15);
/boton para continuar/
continuarButton = new Button("Continuar");
continuarButton.addClickListener(new ClickListener() {
}
}