| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 
 |  
@WebServlet(name = "UploadFile", urlPatterns = "/UploadFile")
@Multipart
public class UploadFile extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
	// ATTRIBUTES DE LA REQUETE
	private static final String ATTR_FILE = "file";
	private static final String ATTR_UPLOADS_DIRECTORY = "uploads-directory";
 
	private static final String VIEW1 = "/WEB-INF/web/upload.jsp";
	private static final String VIEW2 = "/WEB-INF/web/Ok.jsp";
	private static final String VIEW3 = "/WEB-INF/web/NonOk.jsp";
 
	private String uploadsdirectory = new String();
 
	// OBJET POUR LE CONTROL DE LA TAILLE DU FICHIER
	private static final int THRESHOLD_SIZE = 1024 * 1024 * 30; // 30MB
	private static final int MAX_FILE_SIZE = 1024 * 1024 * 500; // 500MB
	private static final int MAX_REQUEST_SIZE = 1024 * 1024 * 500; // 500MB
 
	private AbstractDAO<Fichier> fichierDao;
 
 
	// POINT D'ENTRE AU SERVLET / LIKE A CONSTRUCTOR
	public void init() throws ServletException {
		// RECUPERATION DU CHEMAIN (REPERTOIRE) POUR LES FICHIERS TEMPORAIRES
		this.uploadsdirectory = this.getServletContext().getInitParameter(
				ATTR_UPLOADS_DIRECTORY);
 
		// VERIFICATION DE L EXISTENCE DU REPERTOIRE UPLOADS
		this.directoryCreator(this.uploadsdirectory);
 
		this.fichierDao = FactoryDAO.getFichierDAO();
	}
 
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
 
	this.getServletContext().getRequestDispatcher(VIEW1)
				.forward(request, response);
	}
 
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
 
 
 
 
		if (new File(this.uploadsdirectory).exists()) {
 
			// OBJET METIER SET POUR UPLOADER UN FICHIER
			ServletFileUpload upload = null;
 
			AbstractFileUpload uploader = new PDFFileUpload(this.uploadsdirectory);
			AbstractFileUpload uploader2 = new UploadAnyFile(this.uploadsdirectory);
 
 
				String nomFichier = (String) request.getParameter("Nom");
				String auteurFichier = (String) request.getParameter("Auteur");
				String descriptionFichier = (String) request.getParameter("Description");
				String typeFichier = (String) request.getParameter("Type");
				System.out.println(nomFichier + auteurFichier+ descriptionFichier + typeFichier);
 
 
 
 
				if (ServletFileUpload.isMultipartContent(request)) {
					 try
					 {
 
// PRETRATITEMENT POUR CONTROLER LA TAILLER DU FICHIER
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(THRESHOLD_SIZE);
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
upload = new ServletFileUpload(factory);
upload.setFileSizeMax(MAX_FILE_SIZE);
upload.setSizeMax(MAX_REQUEST_SIZE);
 
// OBTIEN LISTE DE ITEMS(INPUTs) DU FORMULAIRE ENVOYES PAR
// POST
List<FileItem> itemsSet = upload.parseRequest(request);
int itemsSetSize = itemsSet.size();
 
					for (int i = 0; i < itemsSetSize; i++) {
 
 
						if (!itemsSet.get(i).isFormField()) {
							uploader.upload(itemsSet.get(i)); // OBJET METIER
																// ENCHARGER
																// D'UPLOADER LE
																// FICHIER
 
							if (!uploader.getErrors().isEmpty()) {
								uploader.setErrors(null, null);
								uploader2.upload(itemsSet.get(i));
 
							}
						}
					}
 
					// AJOUT D'ATTRIBUTES A LA REQUETE
					request.setAttribute(ATTR_FILE, uploader);
 
					// REDIRECTION VERS LA VUE CORRESPONDANTE
					if (!uploader2.getErrors().isEmpty()) {
 
						this.getServletContext().getRequestDispatcher(VIEW3)
								.forward(request, response);
					} else {
 
						this.getServletContext().getRequestDispatcher(VIEW2)
								.forward(request, response);
					}
 
 
				// CREATION DUN OBJET FICHIER A PARTIR DES METADONNEES
					/*
					 * Fichier fichier=new Fichier();
					 * 
					 * fichier.setNom(nomFichier);
					 * fichier.setAuteur(auteurFichier);
					 * fichier.setDescription(descriptionFichier);
					 * fichier.setType(typeFichier);
					 * 
					 * fichier.setId(uploader.getFilecode());
					 * fichier.setSize(uploader.getFilesize());
					 * fichier.setFormat(uploader.getFileformat());
					 * 
					 * 
					 * fichier.setId(uploader2.getFilecode());
					 * fichier.setSize(uploader2.getFilesize());
					 * fichier.setFormat(uploader2.getFileformat());
					 * 
					 * 
					 * System.out.println(fichier.toString());
					 * this.fichierDao.create(fichier);
					 */
 
				}
			 catch (Exception e) {
				// ON PDFUPLOADER ERROR LIST
				uploader.setErrors("size","The selected file exceeds the size allowed by the server");
 
				// ON SERVER
				System.out.println(this.getClass().getName()
						+ ".multipart():\n" + e.getMessage());
			}
				}
 
		}
 
	}
 
	/** METHODE QUI GERE LA CREATION DE REPERTOIRES **/
	private void directoryCreator(String directoryname) {
		if (!new File(directoryname).exists()) {
			try {
				// CREATION DU REPERTOIRE
				new File(directoryname).mkdir();
			} catch (Exception e) {
				// REPPORTINF ERROR ON SERVER
				System.out.println(this.getClass().getName()
						+ ".directoryCreator():\n" + e.getMessage());
			}
		}
	}
 
} |