其實(shí)在大多數(shù)的實(shí)際項(xiàng)目中 數(shù)據(jù)庫(kù)中存放的是 圖片的url地址 直接將圖片放置到你的項(xiàng)目中的一個(gè)專門的文件夾先 在頁(yè)面顯示的時(shí)候直接按照 url來顯示圖片 這樣既方便由能夠緩解服務(wù)器負(fù)擔(dān)增加性能 你可以嘗試一下
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比澧縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式澧縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋澧縣地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
img src="你從數(shù)據(jù)庫(kù)中獲得的圖片的url"
想必讀取數(shù)據(jù)庫(kù)你應(yīng)該會(huì)把
我這里給你介紹下在struts框架下的圖片上傳的三步。
1、在pojo里,把圖片字段設(shè)置為byte[]類型
private byte[] image;
2、如果是采用struts的話,只需要
.setImage(formbean.getImage().getFileData());
前提是定義一個(gè)formbean類,使用getFileData()方法將圖片類型轉(zhuǎn)化為byte[]類型。
3、在前臺(tái)頁(yè)面里這樣,上傳圖片的控件名稱為image,類型為file.
input type="file" name="image" size="30" value=""
String sql = "select * from pz_1001_2009";
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
//通過Statement獲得結(jié)果集
ResultSet rs = stmt.executeQuery(sql);
這一段詳細(xì)代碼上來看看
另外,你的do while里面有用到stmt么?
在do while外面加一個(gè)try catch,把出錯(cuò)的時(shí)候的i的值,count的值打印出來
很簡(jiǎn)單。
可以手寫IO讀寫(有點(diǎn)麻煩)。
怕麻煩的話使用FileUpload組件 在servlet里doPost嵌入一下代碼
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
//設(shè)置保存上傳文件的目錄
String uploadDir =getServletContext().getRealPath("/up");
System.out.println(uploadDir);
if (uploadDir == null)
{
out.println("無法訪問存儲(chǔ)目錄!");
return;
}
//根據(jù)路徑創(chuàng)建一個(gè)文件
File fUploadDir = new File(uploadDir);
if(!fUploadDir.exists()){
if(!fUploadDir.mkdir())//如果UP目錄不存在 創(chuàng)建一個(gè) 不能創(chuàng)建輸出...
{
out.println("無法創(chuàng)建存儲(chǔ)目錄!");
return;
}
}
if (!DiskFileUpload.isMultipartContent(request))
{
out.println("只能處理multipart/form-data類型的數(shù)據(jù)!");
return ;
}
DiskFileUpload fu = new DiskFileUpload();
//最多上傳200M數(shù)據(jù)
fu.setSizeMax(1024 * 1024 * 200);
//超過1M的字段數(shù)據(jù)采用臨時(shí)文件緩存
fu.setSizeThreshold(1024 * 1024);
//采用默認(rèn)的臨時(shí)文件存儲(chǔ)位置
//fu.setRepositoryPath(...);
//設(shè)置上傳的普通字段的名稱和文件字段的文件名所采用的字符集編碼
fu.setHeaderEncoding("gb2312");
//得到所有表單字段對(duì)象的集合
List fileItems = null;
try
{
fileItems = fu.parseRequest(request);//解析request對(duì)象中上傳的文件
}
catch (FileUploadException e)
{
out.println("解析數(shù)據(jù)時(shí)出現(xiàn)如下問題:");
e.printStackTrace(out);
return;
}
//處理每個(gè)表單字段
Iterator i = fileItems.iterator();
while (i.hasNext())
{
FileItem fi = (FileItem) i.next();
if (fi.isFormField()){
String content = fi.getString("GB2312");
String fieldName = fi.getFieldName();
request.setAttribute(fieldName,content);
}else{
try
{
String pathSrc = fi.getName();
if(pathSrc.trim().equals("")){
continue;
}
int start = pathSrc.lastIndexOf('\\');
String fileName = pathSrc.substring(start + 1);
File pathDest = new File(uploadDir, fileName);
fi.write(pathDest);
String fieldName = fi.getFieldName();
request.setAttribute(fieldName, fileName);
}catch (Exception e){
out.println("存儲(chǔ)文件時(shí)出現(xiàn)如下問題:");
e.printStackTrace(out);
return;
}
finally //總是立即刪除保存表單字段內(nèi)容的臨時(shí)文件
{
fi.delete();
}
}
}
注意 JSP頁(yè)面的form要加enctype="multipart/form-data" 屬性, 提交的時(shí)候要向服務(wù)器說明一下 此頁(yè)面包含文件。
如果 還是麻煩,干脆使用Struts 的上傳組件 他對(duì)FileUpload又做了封裝,使用起來更傻瓜化,很容易掌握。
-----------------------------
以上回答,如有不明白可以聯(lián)系我。
jsp是靠加載圖片路徑來顯示圖片的,圖片可以保存在項(xiàng)目中,也可以保存到磁盤的某個(gè)路勁下。
圖片放webroot下,一般是webroot下建一個(gè)img或pic 文件夾專門存圖。
jsp使用的時(shí)候img src"%=request.getContextPath()%/pic/mypic.gif"/
這樣就可以加載到圖片了。
當(dāng)前題目:java數(shù)據(jù)庫(kù)代碼圖片,java圖片上傳數(shù)據(jù)庫(kù)代碼
網(wǎng)頁(yè)URL:http://www.rwnh.cn/article2/dssdgic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、品牌網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、小程序開發(fā)、定制開發(fā)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)