FileItemFactory fileItemFactory = new DiskFileItemFactory()
ServletFileUpload upload = new ServletFileUpload(fileItemFactory)
upload.setHeaderEncoding("utf-8")
try {
List<FileItem>items = upload.parseRequest(request)
for (FileItem fileItem : items) {
System.out.println("fileName=" + fileItem.getFieldName())
//获取文件流
InputStream in = fileItem.getInputStream()
ServletContext context = getServletConfig().getServletContext()
String path = context.getRealPath("image")
System.out.println(path)
OutputStream out = new FileOutputStream(new File(path + "\\" + fileItem.getName()))
byte[] buffer = new byte[1024]
int len = 0
while((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len)
}
out.close()
in.close()
System.out.println("写入完毕")
}
} catch (FileUploadException e) {
e.printStackTrace()
}
用jspSmartUpload组件来实现,用jsp+servlet在Servlet里实现的代码:PrintWriter out = response.getWriter()
int count = 0
// 实例化上传控件对象
SmartUpload su = new SmartUpload()
// 初始化 *** 作
su.initialize(config, request, response)
// 设置上传文件最大字节数
su.setTotalMaxFileSize(100000)
//
try {
//禁止上传指定扩展名的文件
su.setDeniedFilesList("ext,bat,jsp")
} catch (SQLException e1) {
e1.printStackTrace()
}
try {
// 上传文件到服务器
su.upload()
File fileup = new File(request.getRealPath("upload"))
if(!fileup.exists()){
// 创建目录
fileup.mkdir()
}
// 处理多个文件的上传
for(int i = 0i <su.getFiles().getCount()i++){
com.jspsmart.upload.File file = su.getFiles().getFile(i)
if(!file.isMissing()){ // 如果文件有效
// 保存文件到指定上传目录
file.saveAs("/upload/new."+file.getFileExt(), su.SAVE_VIRTUAL)
count = su.save("/upload")
}
}
} catch (SmartUploadException e) {
e.printStackTrace()
}
out.println(count +"file(s) uploaded")
如果你对这个上传组件不了解,最好是先去查查用法。。。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
//新建一个Smartupload对象SmartUpload su=new SmartUpload()
//上传初始化
su.initialize(pageContext)
//设定上传限度
//1.限定每个上传文件的最大长度
//su.setMaxFileSize(100000)
//2.限制总上传数据的长度。
//su.setTotalMaxFileSize(20000)
//3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
//su.setAllowFilesList("doc,text")
//4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件或没有扩展名的文件
//su.setDeniedDilesList("exe,bat,jsp,html,htm,,")
//上传文件
su.upload()
//将上传文件全部保存到指定目录
int count=su.save("/upload")
out.println(count+"个上传文件成功!<br>")
//利用Request对象获取参数之值
out.println("test="+su.getRequest().getParameter("test")+"<br><br>")
//逐一提取上传文件信息,同时可保存文件。
for(int i=0i<su.getFiles().getCount()i++)
{
com.jspsmart.upload.File file=su.getFiles().getFile(i)
//若文件不存在则继续
if(file.isMissing())
continue
//显示当前文件信息
out.println("<table border=1>")
out.println("<tr><td>表单项名(FiledName)</td><td>"+file.getFieldName()+"</tr></tr>")
out.println("<tr><td>文件长度(Size)</td><td>"+file.getSize()+"</td><td>")
out.println("<tr><td>文件名(FileName)</td><td>"+file.getFileName()+"</tr></tr>")
out.println("<tr><td>文件扩展名(FiledExt)</td><td>"+file.getFileExt()+"</tr></tr>")
out.println("<tr><td>文件全名(FiledPathName)</td><td>"+file.getFilePathName()+"</tr></tr>")
out.println("</table><br>")
//将文件另存
//file.saveAs("/upload/"+myFile.getFileName())
//另存到以web应用程序的根目录为文件根目录的目录下
//file.saveAs("/upload/"+myFile.getFileName(),su.SAVE_VIRTUAL)
//另存到 *** 作系统的根目录为文件根目录的目录下
//file.safeAs("c://temp//"+myFile.getFileName(),su.SAVE_PHYSICAL)
}
上面就是了。。。。祝你好运哈!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)