Lors du téléchargement d'un fichier avec une application Web ... La première chose qui vient à l'esprit est de mettre en place un serveur de fichiers, mais cette méthode est aussi ... (Je me fiche de la taille.)
main
//Lecture de fichiers
File uploadFile = new File("[annuaire]\\tmp.xlsx");
FileInputStream finstream = new FileInputStream(uploadFile);
Très simple.
main
Class.forName("oracle.jdbc.driver.OracleDriver");
//Connectez-vous à Oracle8i
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:TEST", "system", "password");
//Créer une déclaration
Statement stmt = conn.createStatement();
//Définition SQL
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO [Schéma].test_table(file_id, deta) VALUES(0, ?)");
//Lier à l'instruction
pstmt.setBinaryStream(1, finstream, (int) uploadFile.length());
//Courir
int result = pstmt.executeUpdate();
Binaire et défini avec setBinaryStream.
main
//Acquisition de données binaires
ResultSet rset = stmt.executeQuery("select deta from [Schéma].upload_file where file_id = '0'");
//Obtenir les données Blob et les exporter dans un fichier
Blob blob = null;
while (rset.next()) {
blob = rset.getBlob("deta");
}
byte[] buffer = blob.getBytes(1, (int) blob.length());
Stocker dans un tableau d'octets avec getBytes
main
//Spécifiez le fichier de sortie
File file = new File("[annuaire]\\test001_output.xlsx");
DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
//écrire un tableau d'octets
dos.write(buffer);
dos.close();
Générez et écrivez simplement un fichier.
main
//Fermer l'ensemble de résultats
rset.close();
//Fermer la déclaration
stmt.close();
//Fermer la connexion
conn.close();
//Supprimer le fichier tmp
uploadFile.delete();
Divers ferme. Et supprimez le fichier temporaire téléchargé. Un fichier est généré dans le répertoire spécifié.
La dernière fois que j'ai utilisé POI pour générer Excel, Je veux le convertir en binaire avec le processus de génération de fichier et le conserver dans la base de données avec le même flux ... (Je l'ai craché en tant que fichier temporaire une fois, je l'ai lu à nouveau et je l'ai rendu binaire)
Je ne peux pas y penser un instant, alors essayons-le la prochaine fois!
Recommended Posts