jsp批量上傳圖片
Ⅰ JSP如何上傳圖片
jsp使用I/O文件操作類,可以將圖片轉成二進制的形式,然後保存在伺服器中的一個文件夾,示例如下:
<%...@pagecontentType="text/html;charset=gb2312"%>
<%...@pageimport="java.util.*"%>
<%...@pageimport="java.text.*"%>
<%...@pageimport="java.io.*"%>
<%...@pageimport="com.sun.image.codec.jpeg.*"%>
<%...@pageimport="java.awt.image.*"%>
<%...@pageimport="java.awt.*"%>
<%...
Stringname=request.getParameter("name");
name=newString(name.getBytes("ISO-8859-1"));
Stringima=request.getParameter("image");
try{
Stringpath=request.getRealPath("/");
FileOutputStreamot=newFileOutputStream(path+name+".jpg");
//ServletOutputStreamot=response.getOutputStream();//也可以直接輸出顯示
FileInputStreamin=newFileInputStream(ima);
JPEGImageDecoderjpgCodec=JPEGCodec.createJPEGDecoder(in);
BufferedImageimage=jpgCodec.decodeAsBufferedImage();
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(ot);
encoder.encode(image);
in.close();
ot.close();
out.print("JSP上傳圖片成功!<BR>");
//載入上傳成功的圖片
out.print("<IMGwidth=200height=200src='"+name+".jpg'/>");
}
catch(Exceptione)
{
System.out.print(e.toString());
}
%>
Ⅱ jsp頁面批量上傳圖片 圖片右上角帶刪除(×)怎麼實現
<divstyle="position:relative;width:315px;height:104px;">
<spanstyle="position:absolute;top:5px;right:10px;dispaly:inline-block;z-index:2">x</span>
<imgstyle="width:315px;height:104px;"src="http://img0.bdstatic.com/img/image/shouye/sjfgtb.jpg">
</div>
差不多就是這樣
Ⅲ jsp上傳圖片,最好完整代碼。100分!
upfile.jsp 文件代碼如下:
<form method="post" action="uploadimage.jsp" name="form1" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submIT" name="sub" value="upload">
</form>
<form method="post" action="uploadimage.jsp" name="form1" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="sub" value="upload">
</form>
<STRONG><FONT color=#ff0000>uploadimage.jsp</FONT></STRONG>
文件代碼如下:
uploadimage.jsp
文件代碼如下:view plain to clipboardprint?
<PRE class=java name="code"><%@ page language="java" pageEncoding="gb2312"%>
<%@ page import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"%>
<%@ page import="mainClass.*" %>
<html>
<head>
<title>My JSP 'uploadimage.jsp' starting page</title>
</head>
<body>
<%
SmartUpload sma=new SmartUpload();
long file_max_size=4000000;
String filename1="",ext="",testvar="";
String url="uploadfiles/";
sma.initialize(pageContext);
try
{
sma.setAllowedFilesList("jpg,gif");
sma.upload();
}catch(Exception e){
%>
<script language="jscript">
alert("只允許上傳jpg,gif圖片")
window.location.href="upfile.jsp"
</script>
<%
}
try{
com.jspsmart.upload.File myf=sma.getFiles().getFile(0);
if(myf.isMissing()){
%>
<script language="jscript">
alert("請選擇要上傳的文件!")
window.location.href="upfile.jsp"
</script>
<%
}else{
ext=myf.getFileExt();
int file_size=myf.getSize();
String saveurl="";
if(file_size < file_max_size){
Calendar cal=Calendar.getInstance();
String filename=String.valueOf(cal.getTimeInMillis());
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext;
myf.saveAs(saveurl,sma.SAVE_PHYSICAL);
myclass mc=new myclass(request.getRealPath("data/data.mdb"));
mc.executeInsert("insert into [path] values('uploadfiles/"+filename+"."+ext+"')");
out.println("圖片上傳成功!");
response.sendRedirect("showimg.jsp");
}
}
}catch(Exception e){
e.printStackTrace();
}
%>
</body>
</html>
</PRE>
本文來自: IT知道網(http://www.itwis.com) 詳細出處參考:http://www.itwis.com/html/java/jsp/20080916/2409.html
Ⅳ java批量上傳圖片的web項目
用jspSmartUpload組件來實現,用jsp+servlet在Servlet里實現的代碼:PrintWriter out = response.getWriter(); int count = 0; // 實例化上傳控制項對象 SmartUpload su = new SmartUpload(); // 初始化操作 su.initialize
Ⅳ 如何在JSP頁面中 一次性添加多張圖片
方法如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%><%@ page import="Xproer.*" %><%
//實例化 上載bean
com.jspsmart.upload.SmartUpload su = new com.jspsmart.upload.SmartUpload();
//初始化
su.initialize(pageContext);
//設置上載 的最大值
su.setMaxFileSize(1024*1024);//1MB
//上載文件
su.upload();
com.jspsmart.upload.File file = su.getFiles().getFile(0);
//取附加信息
String userName = su.getRequest().getParameter("UserName");
Uploader up = new Uploader(pageContext,request);
up.SaveFile(file);
out.write(up.GetFilePathRel());
%>
Ⅵ JSP如何上傳圖片
如果你是純JSP寫的,可以用SmartUpload.在你的頁面form 里 <form action="doUpload.jsp" method="POST" enctype="multipart/form-data">
文件名:<input type="text" name="name"/><br>
請選擇上傳的文件:<input type="file" name="file1"/>
<input type="submit" value="上傳"/>
</form> 注意:enctype="multipart/form-data"這個一定要這樣設置,具體什麼意思我也不是很清楚.....(呵呵) 提交到執行的頁面如下: //實例化上傳組件
SmartUpload upload = new SmartUpload();
//初始化上傳組件
upload.initialize(this.getServletConfig(), request, response);
//開始上傳
upload.upload();
//獲取上傳的文件列表對象
Files f = upload.getFiles();
//獲取文件對象
File fil = f.getFile(0);
//去掉文件後綴
String ext = fil.getFileExt();
//判斷文件類型是否是jpg格式jpg,gif,bmp,png,JPG,GIF,BMP,PNG
if (!(ext.equals("jpg")) && !(ext.equals("gif")) && !(ext.equals("bmp")) && !(ext.equals("png")) && !(ext.equals("JPG")) && !(ext.equals("GIF")) && !(ext.equals("BMP")) && !(ext.equals("PNG"))) {
out.println("<script type='text/javascript'>alert('文件類型錯誤');location.replace('upLoadPhoto.jsp');</script>");
return;
}
//滿足條件進行文件的上傳uploadImages在webRoot文件夾下的一個目錄
fil.saveAs("uploadImages/" + fil.getFileName());
String filepath = "uploadImages/" + fil.getFileName(); //保存到資料庫的路徑 OK.這樣就可以了.....
Ⅶ 用jsp做批量上傳(主要是上傳圖片)用什麼插件比較好,還是用struts2會更加方便
用fileupload可以上傳
也可以用struts2自帶的上傳機制上傳
Ⅷ jsp如何實現多圖片一起上傳
能
導包 com.jspsmart.upload.SmartUpload
mySmartUpload.initialize(pageContext);
mySmartUpload.upload();
for(int i=0;i<mySmartUpload.getFiles().getCount();i++){
com.jspsmart.upload.File myFile=mySmartUpload.getFiles().getFiles().getFile(i);
if(!myFile.isMissing()){
myFile.saveAs("c:\\"+myFile.getFileName(),mySmartUpload.SAVE_PHYSICAL);
}
}
基本上就是這意思了! 全是手寫的,不知道有沒有少寫什麼字母
然後頁面取的FILE 再不會,去查,查了也不會再說
Ⅸ jsp圖片如何批量上傳
剛好這個我做過,可以用一個叫smartUpload的包,可以做到,不過原版的不支持中文文件名,有網友改了版本的支持了!你等會我找找發給你。。。。。找到了,順便給你我寫過的一個Demo
建議你看看源碼,圖片和文件上傳其實就是流處理,不過在傳輸過程中流里會加入協議的header,你要做的就是把header里的真正的文件流取出來,header也不是沒用你要的文件名,文件大小,文件類型的信息都在裡面也要取出來,還要注意的就是轉碼,這就是原版不支持中文的地方
Ⅹ 用java完成圖片多張批量上傳的功能,還有就是後台的應該怎麼處理上傳的照片。
環境准備
1. 下載並安裝Tomcat(已經有很多關於Tomcat安裝以及使用的文章,在這里不再介紹);
2. 下載File upload的jar包commons-fileupload-1.0-beta-1.jar,並將該文件拷貝到{$TOMCAT}/common/lib目錄下(其中{$TOMCAT}為Tomcat的安裝目錄);
3. 由於Fileupload子項目同時要用到另外一個項目commons-Beanutils,所以必須下載Beanutils,並將解壓後的文件commons-beanutils.jar拷貝到{$TOMCAT}/common/lib目錄下。
開發文件上傳頁面
文件上傳的界面如圖1所示。為了增加效率我們設計了三個文件域,同時上傳三個文件。
圖1 文件上傳界面
頁面的HTML代碼如下:
<html>
<head>
<title>文件上傳演示</title>
</head>
<body bgcolor=「#FFFFFF」text=「#000000」 leftmargin=「0」topmargin=「40」marginwidth=「0」 marginheight=「0」>
<center>
<h1>文件上傳演示</h1>
<form name=「uploadform」method=「POST」 action=「save.jsp」ENCTYPE=「multipart/form-data」>
<table border=「1」width=「450」cellpadding=「4」 cellspacing=「2」bordercolor=「#9BD7FF」>
<tr><td width=「100%」colspan=「2」>
文件1:<input name=「file1」size=「40」type=「file」>
</td></tr>
<tr><td width=「100%」colspan=「2」>
文件2:<input name=「file2」size=「40」type=「file」>
</td></tr>
<tr><td width=「100%」colspan=「2」>
文件3:<input name=「file3」size=「40」type=「file」>
</td></tr>
</table>
<br/><br/>
<table>
<tr><td align=「center」><input name=「upload」 type=「submit」value=「開始上傳」/></td></tr>
</table>
</form>
</center>
</body>
</html>
代碼中要特別注意的是黑體處。必須保證表單的ENCTYPE屬性值為multipart/form-data,這樣瀏覽器才能正確執行上傳文件的操作。
處理上傳文件信息
由於本文主要是講述如何使用Commons-fileupload,所以為了便於修改、調試,上傳文件的保存使用一個JSP文件來進行處理。我們將瀏覽器上傳來的所有文件保存在一個指定目錄下並在頁面上顯示所有上傳文件的詳細信息。保存頁面處理結果見圖2所示。
圖2 保存頁面
下面來看看save.jsp的代碼:
<%
/**
* 演示文件上傳的處理
* @author <a href=「mailto:[email protected]」>Winter Lau</a>
* @version $Id: save.jsp,v 1.00 2003/03/01 10:10:15
*/
%>
<%@ page language=「java」contentType=「text/html;charset=GBK」%>
<%@ page import=「java.util.*」%>
<%@ page import=「org.apache.commons.fileupload.*」%>
<html>
<head>
<title>保存上傳文件</title>
</head>
<%
String msg = 「」;
FileUpload fu = new FileUpload();
// 設置允許用戶上傳文件大小,單位:位元組
fu.setSizeMax(10000000);
// maximum size that will be stored in memory?
// 設置最多隻允許在內存中存儲的數據,單位:位元組
fu.setSizeThreshold(4096);
// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
fu.setRepositoryPath(「C:\\TEMP」);
//開始讀取上傳信息
List fileItems = fu.parseRequest(request);
%>
<body bgcolor=「#FFFFFF」text=「#000000」 leftmargin=「0」topmargin=「40」marginwidth=「0」 marginheight=「0」>
<font size=「6」color=「blue」>文件列表:</font>
<center>
<table cellpadding=0 cellspacing=1 border=1 width=「100%」>
<tr>
<td bgcolor=「#008080」>文件名</td>
<td bgcolor=「#008080」>大小</td>
</tr>
<%
// 依次處理每個上傳的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals(「」)) && size==0)
continue;
%>
<tr>
<td><%=item.getName()%></td>
<td><%=item.getSize()%></td>
</tr>
<%
//保存上傳的文件到指定的目錄
name = name.replace(『:』,『_』);
name = name.replace(『\\』,『_』);
item.write(「F:\\」+ name);
}
}
%>
</table>
<br/><br/>
<a href=「upload.html」>返回上傳頁面</a>
</center>
</body>
</html>
在這個文件中需要注意的是FileUpload對象的一些參數值的意義,如下面代碼所示的三個參數sizeMax、sizeThreshold、repositoryPath:
FileUpload fu = new FileUpload();
// 設置允許用戶上傳文件大小,單位:位元組
fu.setSizeMax(10000000);
// maximum size that will be stored in memory?
// 設置最多隻允許在內存中存儲的數據,單位:位元組
fu.setSizeThreshold(4096);
// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
fu.setRepositoryPath(「C:\\TEMP」);
這3個參數的意義分別為:
SizeMax 用來設置上傳文件大小的最大值,一旦用戶上傳的文件大小超過該值時將會拋出一個FileUploadException異常,提示文件太大;
SizeThreshold 設置內存中緩沖區的大小,一旦文件的大小超過該值的時候,程序會自動將其它數據存放在repositoryPath指定的目錄下作為緩沖。合理設置該參數的值可以保證伺服器穩定高效的運行;
RepositoryPath 指定緩沖區目錄。
使用注意事項
從實際應用的結果來看該模塊能夠穩定高效的工作。其中參數SizeThreshold的值至關重要,設置太大會佔用過多的內存,設置太小會頻繁使用硬碟作為緩沖以致犧牲性能。因此,設置該值時要根據用戶上傳文件大小分布情況來設定。例如大部分文件大小集中在100KB左右,則可以使用100KB作為該參數的值,當然了再大就不合適了。使用commons-fileupload來處理HTTP文件上傳的功能模塊很小,但是值得研究的東西很多。