latar belakang! jsp+mysql Ingatlah untuk menggunakan tipe longblob mysql untuk menyimpan field database. Ukuran blob default tidak cukup
: id (char) pic (longblob)
Harap tunjukkan sumber untuk mencetak ulang selesaikan
operasi awal blob Ketika bidang, Anda harus memiliki nilai kosong. Periksa BLOB, yang sangat merepotkan. Anda tidak perlu terlalu repot untuk menggunakan PEPAREPARESTATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATORESTATATATORESTATOMEMEMEMEML
.
org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">testblob.jsp
<%@ halaman contentType="text/html;charset=gb2312"%>
<%@ halaman import="java.sql.*" %>
<%@ halaman import="java.util.*"%>
<%@ halaman import="java.text.*"%>
<%@ halaman import="java.io.*"%>
http://www.w3.org/1999/xhtml ">
<%
String id=permintaan.getParameter("id");
String file=permintaan.getParameter("file");
keluar.cetak(id);
keluar.cetak(mengajukan);
FileInputStream str=FileInputStream baru(file);
keluar.print(str.tersedia());
java.sql.Sambungan koneksi;
java.lang.String strConn;
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
samb= java.sql.DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
String sql="masukkan ke dalam nilai pengujian(id,gambar)(?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setBinaryStream(2,str,str.tersedia());
pstmt.eksekusi();
out.println("Sukses, Anda Berhasil Menyisipkan Gambar");
pstmt.close();
%>
Lihat gambar
Kembali
************************************************* **********
readblob.jsp
<%@ halaman contentType="text/html;charset=gb2312"%>
<%@ halaman import="java.sql.*, javax.sql.*" %>
<%@ halaman import="java.util.*"%>
<%@ halaman import="java.text.*"%>
<%@ halaman import="java.io.*"%>
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
http://www.w3.org/1999/xhtml ">
<%
java.sql.Sambungan koneksi;
Set Hasil rs=null;
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
samb= java.sql.DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
Pernyataan stmt=conn.createStatement();
rs=stmt.executeQuery("pilih * dari pengujian di mana id='1'");
if(rs.next())
{
Gumpalan b = rs.getBlob("gambar");
int ukuran =(int)b.panjang();
keluar.cetak(ukuran);
InputStream di=b.getBinaryStream();
byte[] oleh= byte baru[ukuran];
respon.setContentType("gambar/jpeg");
ServletOutputStream sos = respon.getOutputStream();
int byteBaca = 0;
while ((bytesRead = in.read(by)) != -1) {
sos.write(oleh, 0, byteBaca);
}
melampirkan();
sos.flush();
}
%>
******************************************************* * ******************
Catatan: Saat menggunakan sos.write(by, 0, bytesRead);, metode ini menampilkan konten di inputstream di halaman
baru apakah konten lain akan ditampilkan di halaman ini, Anda hanya dapat mengubah metode di atas menjadi, bytesRead = in.read(by));
lalu gunakan metode out.print(new String(by)); perhatian di sini Metode by.toString() tidak dapat digunakan. Metode ini mengembalikan alamat memori konten yang akan dikeluarkan. Ada tipe blob textarea di mysql, ukurannya 66536. Pada dasarnya cukup untuk menaruh beberapa barang kecil haha. Tapi sekarang foto digital semakin besar, Anda hanya bisa menggunakan longblob cukup untuk memutar film.