1 2 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
|
package fr.jerrycan.action;
import java.io.File;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.sql.Date;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import fr.jerrycan.dao.VideoDao;
import fr.jerrycan.metier.Admin;
import fr.jerrycan.metier.ConvertionDeString;
import fr.jerrycan.metier.Video;
/**
* Servlet implementation class AjouterVideo
*/
public class AjouterVideo extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String UPLOAD_DIRECTORY = "/home/jerrycan/data/videos";
private static final int THRESHOLD_SIZE = 1024 * 1024 * 50; // 50MB
private static final int MAX_FILE_SIZE = 1024 * 1024 * 500; // 500MB
private static final int REQUEST_SIZE = 1024 * 1024 * 1500; // 1,5GB
/**
* @see HttpServlet#HttpServlet()
*/
public AjouterVideo() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Admin admin = (Admin) request.getSession().getAttribute("admin");
if(admin == null){
request.getRequestDispatcher("/admin/index.jsp").forward(request, response);
}else{
HashMap<String, String> lesChamps = new HashMap<>();
// v�rifie si la requete contient un fichier
if (!ServletFileUpload.isMultipartContent(request)) {
}else{
// configuration de certains parametres
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(THRESHOLD_SIZE);
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(MAX_FILE_SIZE);
upload.setSizeMax(REQUEST_SIZE);
// construit le chemin du dossier pour stocker la fichier re�u
String uploadPath = UPLOAD_DIRECTORY;
// creer le r�pertoire si celui-ci n'existe pas
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdirs();
}
String mime = "";
System.out.println("ok");
try {
System.out.println("ok 1");
// parse la demande pour stocker les donnees
List<FileItem> formItems = upload.parseRequest(request);
System.out.println("ok2");
// iterates over form's fields
for (FileItem item : formItems) {
// processes only fields that are not form fields
if (!item.isFormField()) {
String fileName = item.getName();
String filePath = uploadPath + File.separator + fileName;
File storeFile = new File(filePath);
lesChamps.put(item.getFieldName(), item.getName());
mime = fileName.substring(fileName.lastIndexOf("."));
System.out.println(mime);
if(mime.compareTo(".ogg") == 0 || mime.compareTo(".mp4") == 0){
System.out.println("ok3");
// sauve le fichier sur le disque
item.write(storeFile);
}else{
request.setAttribute("message", ConvertionDeString.convertToIso("Seul les extentions de fichier ogg et mp4 sont acceptées"));
request.getRequestDispatcher("admin/message.jsp").forward(request, response);
}
}else{
System.out.println(item.getFieldName());
System.out.println(item.getString());
lesChamps.put(item.getFieldName(), item.getString());
}
}
} catch (Exception ex) {
request.setAttribute("message", "Erreur: " + ex.getMessage());
request.getRequestDispatcher("admin/message.jsp").forward(request, response);
}
String date = lesChamps.get("date5");
int year = Integer.parseInt(date.substring(0, 4));
int month = Integer.parseInt(date.substring(5, 7));
int day = Integer.parseInt(date.substring(8));
@SuppressWarnings("deprecation")
Date dateSql = new Date(year - 1900, month -1, day);
String sujet = lesChamps.get("titre5");
String description = lesChamps.get("description5");
String auteur = lesChamps.get("auteur5");
String urlOgg = lesChamps.get("urlOgg5");
String urlMp4 = lesChamps.get("urlMp45");
String submit = lesChamps.get("submit5");
//Sauvegarde de la nouvele video
if(sujet != null && sujet != ""
&& description != null && description != ""
&& auteur != null && auteur != ""
&& description != null && description != ""
&& urlMp4 != null && urlMp4 != ""
&& urlOgg != null && urlOgg != ""
&& date != null && date != ""
&& submit != null && submit != ""
){
VideoDao dao = new VideoDao();
Video uneVideo = new Video(0, urlMp4, urlOgg, auteur, dateSql, sujet, admin, description);
try {
dao.save(uneVideo);
request.setAttribute("message", ConvertionDeString.convertToIso("Vidéo sauvegardée"));
request.getRequestDispatcher("admin/message.jsp").forward(request, response);
} catch (NoSuchAlgorithmException | SQLException e) {
request.setAttribute("message", ConvertionDeString.convertToIso("Erreur : " + e));
e.printStackTrace();
}
}else{
request.setAttribute("message", ConvertionDeString.convertToIso("Tous les champs sont requis"));
request.getRequestDispatcher("admin/message.jsp").forward(request, response);
}
}
}
}
} |
Partager