Upload n'accepte pas les fihcier volumineux
Résolu/Fermé
natasha82
Messages postés
73
Statut
Membre
-
natasha82 Messages postés 73 Statut Membre -
natasha82 Messages postés 73 Statut Membre -
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
- Upload video youtube - Télécharger - Diffusion
- Il n'a pas accepté mon invitation facebook - Guide
- Sms colis trop volumineux - Accueil - Arnaque
- Impossible de copier car cet élément est trop volumineux pour le format du volume - Forum MacOS
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
73
Statut
Membre
le problème etait sur le type fu file il fallait mettre "longblob"