类似QQ相册的图片上传功能,不需要将图片信息插入数据库,只需要实现怎么将图片上传到项目下面的upload文件夹中。
struts2多图片上传实例 :http://blog.csdn.net/java_cxrs/article/details/6004144
Struts2实现图片上传功能:http://www.cnblogs.com/CheeseZH/archive/2013/03/05/2943899.html
用共享存储的方式可以,把存储挂在应用服务器上。
可以使用struts的ognl的对象数组功能实现多图上传,不过与qq上传肯定不一样,qq使用的是flash插件方式,你也可以做一个flash实现此功能,目前相当一部分网站使用的是flash实现的多文件,大文件的上传、断电续传等功能
jspsmart
的使用
上传
//
新建一个
SmartUpload
对象
SmartUpload su = new SmartUpload();
//
上传初始化
su.initialize(pageContext);
//
限制每个上传文件的最大长度。
su.setMaxFileSize(10000);
//
限制总上传数据的长度。
su.setTotalMaxFileSize(20000);
//
设定允许上传的文件(通过扩展名限制)
,
仅允许
doc,txt
文件。
su.setAllowedFilesList("doc,txt");
//
设定禁止上传的文件(通过扩展名限制)
,
禁止上传带有
exe,bat,
//jsp,htm,html
扩展名的文件和没有扩展名的文件。
su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
//
上传文件
su.upload();
//
将上传文件全部保存到指定目录
int count = su.save("/upload");
下载
//
新建一个
SmartUpload
对象
SmartUpload su = new SmartUpload();
//
初始化
su.initialize(pageContext);
//
设定
contentDisposition
为
null
以禁止浏览器自动打开文件,
//
保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc
时,浏览器将自动用
word
打开它。扩展名为
时,
//
浏览器将用
acrobat
打开。
su.setContentDisposition(null);
//
下载文件
su.downloadFile("/upload/test.doc");
应用实例:
uploadimage.jsp
<%@
page
contentType="text/html;charset=gb2312"
language="java"
import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.js
psmart.upload.*,java.util.*"%>
<%
SmartUpload mySmartUpload =new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="Admin/upload/";
//
应保证在根目录中有此目录的存在
//
初始化
mySmartUpload.initialize(pageContext);
//
只允许上载此类文件
try {
mySmartUpload.setAllowedFilesList("jpg,gif");
//
上载文件
mySmartUpload.upload();
} catch (Exception e){
%>
alert(" 只允许上传 .jpg 和 .gif 类型图片文件 "); window.location='upload.htm';<%
}
try{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){%>
alert(" 请先选择要上传的文件 "); window.location='upload.htm';<%}
else{
//String myFileName=myFile.getFileName(); //
取得上载的文件的文件名
ext= myFile.getFileExt();
//
取得后缀名
int file_size=myFile.getSize();
//
取得文件的大小
String saveurl="";
if(file_size<file_size_max){
//
更改文件名,取得当前上传时间的毫秒数值
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl=application.getRealPath("/")+url;
saveurl+=filename+"."+ext;
//
保存路径
myFile.saveAs(saveurl,SmartUpload.SA
VE_PHYSICAL);
out.print(saveurl);
String ret = "parent.HtmlEdit.focus();";
ret += "var range = parent.HtmlEdit.document.selection.createRange();"
ret
+=
"range.pasteHTML('<img
src=\""
request.getContextPath()
"/admin/upload/"
filename + "." + ext + "\">');"
ret += "alert('
上传成功!
');";
ret += "window.location='upload.htm';";
out.print("" + ret + "");
}
}
}catch (Exception e){
out.print(e.toString());
}
%>
upload.htm
请选择上传的图片
真棒,试一试,,,,,,