jsp上传组件
⑴ 在jsp中使用smartupload组件上传文件,怎么做啊,有例子吗
<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312"%>
<%@ page language="java" import="java.io.*"%>
<%@ page language="java" import="com.jspsmart.upload.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>文件上传Bean</title>
</head>
<body>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<FORM METHOD="POST" ACTION="Ex7_7.jsp" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="FILE4" SIZE="50"><BR>
<INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>
<%
//上传文件计数
int count=0;
//初始化,传入pageContext内置变量
mySmartUpload.initialize(pageContext);
//允许上传的文件类型
mySmartUpload.setAllowedFilesList("htm,html,txt,jar,");
//或者设定拒绝上传的文件类型
// mySmartUpload.setDeniedFilesList("exe,bat,jsp");
// 拒绝的物理路径
// mySmartUpload.setDenyPhysicalPath(true);
// 设置文件最大为 50000 bytes
mySmartUpload.setMaxFileSize(50000);
// 允许一次最多上载文件大小不超过 200000 bytes
// mySmartUpload.setTotalMaxFileSize(200000);
try {
// 上传操作
mySmartUpload.upload();
//以原文件名存储在web服务器虚拟路径下
//返回上传的文件数
count = mySmartUpload.save("/Upload", mySmartUpload.SAVE_VIRTUAL);
} catch (Exception e){
//输出意外信息
out.println("<b>Wrong selection : </b>" + e.toString());
}
// 显示文件上载数
out.println(count + " file(s) uploaded.");
%>
</body>
</html>
⑵ jsp上传组件jspSmartFile的问题
com.jspsmart.upload.File file = (com.jspsmart.upload.File)su.getFiles().getFile(i);
这样写看看行不行
⑶ jspSmartUpload组件实现上传文件问题(正解追加50分)
参考这个.
SmartUpload mySmartUpload =new SmartUpload();
String deviceId =Sequence.getInstance().getSeqNumber("deviceInf");
// 初始化
final String upFileType="jpg|JPG|GIF|gif|bmp|BMP"; //上传文件类型
final int MAXFILESIZE=100000; //上传文件大小限制
String errMsg=null; //错误信息
boolean err=false; //错误标志
int fileSize=0; //文件大小
String url="images/"; //应保证在根目录中有此目录的存在
String fileName = "";
String fileType ="";
String normalPicName = deviceId+"n";
String alarmPicName = deviceId+"a";
mySmartUpload.initialize(pageContext);
// 上传文件
mySmartUpload.upload();
//判断将要上传文件的总容量是否超过上限
int count = mySmartUpload.getSize();
if(count>MAXFILESIZE){
out.print ("<script>alert('上传失败!文件大小:"+count/1024+"K超出了限定的范围(最大"+ MAXFILESIZE/1024+"K)');this.history.go(-1);</script>");
//response.sendRedirect("http://127.0.0.1:8080/javastudy/upload.htm");
}
// 循环取得上传所有文件
else{
for(int i=0;i<mySmartUpload.getFiles().getCount();i++){
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing()) {
String myFileName=myFile.getFileName();//得到文件名
//out.println(myFileName);
//if(myFileName.length()>0){ //取得不带后缀的文件名
//String subFileName=myFileName.substring(0,myFileName.lastIndexOf('.'));
//}
fileType=myFile.getFileExt();//得到文件扩展名
fileType=fileType.toLowerCase(); //将扩展名转换成小写
if (upFileType.indexOf(fileType)==-1){
err=true;
errMsg="文件"+myFileName+"上传失败!只允许上传以下格式的文件:"+upFileType;
}
//得到单个文件大小
//fileSize+=myFile.getSize();
//if (err==false&&fileSize>MAXFILESIZE){
// err=true;
// errMsg="上传失败!文件大小超出了限定的范围(最大"+MAXFILESIZE/1024+"K)";
//}
if(err==false){
//取得路径
//String adss=getServletContext().getRealPath("/")+"JSP\\";
//String trace=adss+myFileName;
//保存文件
//String newFileName="001."+fileType; //可自动生成文件名以防止同名覆盖
//myFile.saveAs(trace);
//myFile.saveAs("enterprise/images/"+myFileName);
Calendar calendar = Calendar.getInstance();
fileName = String.valueOf(calendar.getTimeInMillis());
if(i<=0){
normalPicName=normalPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=normalPicName; //保存路径
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
else{
alarmPicName=alarmPicName+"."+fileType;
String saveurl=request.getRealPath("/")+url;
saveurl+=alarmPicName; //保存路径
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
}
}else{
out.print ("<script>alert('"+errMsg+"');this.history.go(-1);</script>");
}
}
}
⑷ 用jsp 怎样实现文件上传
你下载一个jspsmart组件,网上很容易下到,用法如下,这是我程序的相关片断,供你参考: <%@ page import="com.jspsmart.upload.*" %>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<%
String photoname="photoname";
// Variables
int count=0; // Initialization
mySmartUpload.initialize(pageContext); // Upload
mySmartUpload.upload();
for (int i=0;i<mySmartUpload.getFiles().getCount();i++){ // Retreive the current file
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i); // Save it only if this file exists
if (!myFile.isMissing()) {
java.util.Date thedate=new java.util.Date();
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
photoname = df.format(thedate);
photoname +="."+ myFile.getFileExt();
myFile.saveAs("/docs/docimg/" + photoname);
count ++; } }
%>
<% String title="1";
String author="1";
String content="1";
String pdatetime="1";
String topic="1";
String imgintro="1";
String clkcount="1"; if(mySmartUpload.getRequest().getParameter("title")!=null){
title=(String)mySmartUpload.getRequest().getParameter("title");
title=new String(title.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("author")!=null){
author=(String)mySmartUpload.getRequest().getParameter("author");
author=new String(author.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("content")!=null){
content=(String)mySmartUpload.getRequest().getParameter("content");
content=new String(content.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("pdatetime")!=null){
pdatetime=(String)mySmartUpload.getRequest().getParameter("pdatetime");
}
if(mySmartUpload.getRequest().getParameter("topic")!=null){
topic=(String)mySmartUpload.getRequest().getParameter("topic");
}
if(mySmartUpload.getRequest().getParameter("imgintro")!=null){
imgintro=(String)mySmartUpload.getRequest().getParameter("imgintro");
imgintro=new String(imgintro.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("clkcount")!=null){
clkcount=(String)mySmartUpload.getRequest().getParameter("clkcount");
}
//out.println(code+name+birthday);
%>
⑸ jsp编程中比较好的上传下载组件有哪些,除了jspSmartUpload以外。
JSP中常用的文件上传组件有SmartUpload和apache commons的FileUpload,功能做得非很强大,使用起来也不是很麻烦
⑹ 如何通过JSP组件commons-fileupload实现文件上传功能
一.准备需要上传的磁盘文件
文件准备就不用说了,先建立一个jsp,此jsp负责用户上传文件。此jsp中有一form表单,此表单有三个特点,或者是说文件上传的三个前提。
a、表单的method必须是post
b、表单的enctype属性必须是multipart/form-data
c、表单中提供<inputtype="file"/>类型的上传输入域
⑺ JspSmartUpload上传组件有哪些特点
SmartUpload 是一个免费的上传下载组件,好像早已经停止开发了。
SmartUpload.jar:我找到的最好的一个jar包,对于编码为GBK的,完全支持中文名文件的上传与下载;但对于UTF-8的,中文名上传可以,但中文名下载还是乱码。
这个组件,小项目用用还行,对于大项目,不建议使用。比较常用的有:commons-fileupload等,而且许多框架都集成了上传下载功能,如Struts 1/ Struts 2
另外,注意一点:由于smartupload是把文件全部缓存到内存里,所以上传大文件或多文件时就有可能出错,建议一般不要超过20M,个数也不要太多
⑻ jsp上传组件 jspsmartupload 路径问题
smart.initialize(pageContext) ;
// 2、准备上传
smart.upload() ;
// 3、保存上传的文件
//这里就是相对路径 在当前目录下的UPLOAD文件夹
smart.save("/upload") ;
⑼ jsp怎么上传文件
上传文件程序应用示例
<form action="doUpload.jsp" method="post" enctype="multipart/form-data">
<%-- 类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。--%>
请选择要上传的文件<input type="file" name="upfile" size="50">
<input type="submit" value="提交">
</form>
</body>
</html>
doUpload.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<html><head><title>upFile</title></head>
<body bgcolor="#ffffff">
<%
//定义上载文件的最大字节
int MAX_SIZE = 102400 * 102400;
// 创建根路径的保存变量
String rootPath;
//声明文件读入类
DataInputStream in = null;
FileOutputStream fileOut = null;
//取得客户端的网络地址
String remoteAddr = request.getRemoteAddr();
//获得服务器的名字
String serverName = request.getServerName();
//取得互联网程序的绝对地址
String realPath = request.getRealPath(serverName);
realPath = realPath.substring(0,realPath.lastIndexOf("\\"));
//创建文件的保存目录
rootPath = realPath + "\\upload\\";
//取得客户端上传的数据类型
String contentType = request.getContentType();
try{
if(contentType.indexOf("multipart/form-data") >= 0){
//读入上传的数据
in = new DataInputStream(request.getInputStream());
int formDataLength = request.getContentLength();
if(formDataLength > MAX_SIZE){
out.println("<P>上传的文件字节数不可以超过" + MAX_SIZE + "</p>");
return;
}
//保存上传文件的数据
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
//上传的数据保存在byte数组
while(totalBytesRead < formDataLength){
byteRead = in.read(dataBytes,totalBytesRead,formDataLength);
totalBytesRead += byteRead;
}
//根据byte数组创建字符串
String file = new String(dataBytes);
//out.println(file);
//取得上传的数据的文件名
String saveFile = file.substring(file.indexOf("filename=\"") + 10);
saveFile = saveFile.substring(0,saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
int lastIndex = contentType.lastIndexOf("=");
//取得数据的分隔字符串
String boundary = contentType.substring(lastIndex + 1,contentType.length());
//创建保存路径的文件名
String fileName = rootPath + saveFile;
//out.print(fileName);
int pos;
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n",pos) + 1;
pos = file.indexOf("\n",pos) + 1;
pos = file.indexOf("\n",pos) + 1;
int boundaryLocation = file.indexOf(boundary,pos) - 4;
//out.println(boundaryLocation);
//取得文件数据的开始的位置
int startPos = ((file.substring(0,pos)).getBytes()).length;
//out.println(startPos);
//取得文件数据的结束的位置
int endPos = ((file.substring(0,boundaryLocation)).getBytes()).length;
//out.println(endPos);
//检查上载文件是否存在
File checkFile = new File(fileName);
if(checkFile.exists()){
out.println("<p>" + saveFile + "文件已经存在.</p>");
}
//检查上载文件的目录是否存在
File fileDir = new File(rootPath);
if(!fileDir.exists()){
fileDir.mkdirs();
}
//创建文件的写出类
fileOut = new FileOutputStream(fileName);
//保存文件的数据
fileOut.write(dataBytes,startPos,(endPos - startPos));
fileOut.close();
out.println(saveFile + "文件成功上载.</p>");
}else{
String content = request.getContentType();
out.println("<p>上传的数据类型不是multipart/form-data</p>");
}
}catch(Exception ex){
throw new ServletException(ex.getMessage());
}
%>
</body>
</html>