Upload n'accepte pas les fihcier volumineux
Résolu/Fermé
natasha82
Messages postés
55
Date d'inscription
Statut
Membre
Dernière intervention
-
natasha82 Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
natasha82 Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
Bonjour
svp aidez moi c'est urgent
j'ai fait un programme qui fait le chargement d'un fichier mais il n'accepte pas les pdf il m'affiche,
cette exception:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'file' at row 1
voici la table cours cours(id,title,file)
ce "file" représente le chemin a vrai dire url
sachant sur la colonne file de la base de donné g mis varchar 45
voici le code
merci
EDIT: Précision du langage dans la coloration syntaxique.
svp aidez moi c'est urgent
j'ai fait un programme qui fait le chargement d'un fichier mais il n'accepte pas les pdf il m'affiche,
cette exception:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'file' at row 1
voici la table cours cours(id,title,file)
ce "file" représente le chemin a vrai dire url
sachant sur la colonne file de la base de donné g mis varchar 45
voici le code
package Servlet; import com.sun.corba.se.spi.protocol.RequestDispatcherDefault; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @WebServlet("/uploadServlet") @MultipartConfig (maxFileSize=999999999) public class UploadController extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter() ; InputStream inputStream=null; String Title= request.getParameter("title"); Part filePart=request.getPart("file_upload"); if(filePart!=null) { System.out.println(filePart.getName()); System.out.println(filePart.getSize()); System.out.println( filePart.getContentType()); inputStream =filePart.getInputStream(); } try { Class.forName("com.mysql.jdbc.Driver"); Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd","root",""); String sql="INSERT INTO cours VALUES(Null,?,?)"; PreparedStatement st= cn.prepareStatement(sql); st.setString(1, Title); if(inputStream != null){ st.setBinaryStream(2, inputStream, (int) filePart.getSize()); } int row = st.executeUpdate(); if(row>0){ out.println("file upload"); cn.close(); RequestDispatcher rs=request.getRequestDispatcher("UploadFiles.jsp"); rs.include(request, response); } else{ out.println("on peux pa"); cn.close(); RequestDispatcher rs=request.getRequestDispatcher("UploadFiles.jsp"); rs.include(request, response); } } catch (Exception ex) { ex.printStackTrace(); } } }
merci
EDIT: Précision du langage dans la coloration syntaxique.
A voir également:
- Upload n'accepte pas les fihcier volumineux
- Comment réduire un fichier trop volumineux - Guide
- Youtube upload - Télécharger - Diffusion
- Il n'a pas accepté mon invitation facebook - Guide
- Sms colis trop volumineux - Accueil - Arnaque
- Viber n'accepte pas mon numéro de téléphone - Forum Samsung
1 réponse
'lut, le problème n'est pas spécifique aux PDFs.
Le problème est que tu stockes des fichiers dans une BDD, et ça ne se fait pas: les BDDs ne sont pas conçues pour ça!
Il faut mettre tes fichiers autre part, et stocker dans la BDD uniquement leur chemin d'accès, c'est ce que tu crois faire, mais ce n'est pas le cas:
Ce code prends les données du fichier et les insère...
De plus un VARCHAR(45), c'est trop court pour certains chemins. Il faut prendre plus long, au moins 512 caractères pour ne pas avoir d'ennuis.
Le problème est que tu stockes des fichiers dans une BDD, et ça ne se fait pas: les BDDs ne sont pas conçues pour ça!
Il faut mettre tes fichiers autre part, et stocker dans la BDD uniquement leur chemin d'accès, c'est ce que tu crois faire, mais ce n'est pas le cas:
st.setBinaryStream(2, inputStream, (int) filePart.getSize());
Ce code prends les données du fichier et les insère...
De plus un VARCHAR(45), c'est trop court pour certains chemins. Il faut prendre plus long, au moins 512 caractères pour ne pas avoir d'ennuis.
natasha82
Messages postés
55
Date d'inscription
Statut
Membre
Dernière intervention
le problème etait sur le type fu file il fallait mettre "longblob"