关键的一些地方我这里贴出来给大家看
页面部分:
Logo:<img src="<%=service.getLweb_webinfo(id).getLogo()%>" name=logo />
<form action="Servlet/Upload.do?url=Lweb_webinfoEdit.jsp&fujian_num=2"
method="post" enctype="multipart/form-data" id="form1"
name="form1" target="hidden_frame">
<div class="pageContent">
<div class="pageFormContent" layoutH="97">
<dl>
<dt>
图片
</dt>
<dd>
<input type="file" name="filedata" class="required" size="30" />
</dd>
</dl>
</div>
<div class="formBar">
<ul>
<li>
<div class="buttonActive">
<div class="buttonContent">
<button type="submit">
上传
</button>
</div>
</div
</li>
<li>
<div class="button">
<div class="buttonContent">
<button class="close" type="button">
关闭
</button>
</div>
</div>
</li>
</ul>
</div>
</div>
<iframe name='hidden_frame' id="hidden_frame"
style='display: none'></iframe>
</form>
<span id="msg"></span>
页面部分:
Logo:<img src="<%=service.getLweb_webinfo(id).getLogo()%>" name=logo />
<form action="Servlet/Upload.do?url=Lweb_webinfoEdit.jsp&fujian_num=2"
method="post" enctype="multipart/form-data" id="form1"
name="form1" target="hidden_frame">
<div class="pageContent">
<div class="pageFormContent" layoutH="97">
<dl>
<dt>
图片
</dt>
<dd>
<input type="file" name="filedata" class="required" size="30" />
</dd>
</dl>
</div>
<div class="formBar">
<ul>
<li>
<div class="buttonActive">
<div class="buttonContent">
<button type="submit">
上传
</button>
</div>
</div
</li>
<li>
<div class="button">
<div class="buttonContent">
<button class="close" type="button">
关闭
</button>
</div>
</div>
</li>
</ul>
</div>
</div>
<iframe name='hidden_frame' id="hidden_frame"
style='display: none'></iframe>
</form>
<span id="msg"></span>
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取请求的页面名字
String backUrl = request.getParameter("url");
// System.out.println(backUrl+"test1");
final long MAX_SIZE = 3 * 1024 * 1024;// 设置上传文件最大为 3M
//final long MAX_SIZE = 1 * 1024 * 1024;// 设置上传文件最大为 1M
// 允许上传的文件格式的列表
final String[] allowedExt = new String[] { "jpg","gif","jpeg" };
//final String[] allowedExt = new String[] { "jpg", "jpeg", "gif", "txt","doc", "docx", "mp3", "wma", "m4a" };
response.setContentType("text/html");
// 设置字符编码为UTF-8, 这样支持汉字显示
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
// 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload
DiskFileItemFactory dfif = new DiskFileItemFactory();
dfif.setSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘
dfif.setRepository(new File(request.getRealPath("/")//request.getRealPath("/")取得当前站点的根目录.
+ "example/images/ImagesUploadTemp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录
// 用以上工厂实例化上传组件,创建一个文件上传处理器
ServletFileUpload sfu = new ServletFileUpload(dfif);
// 设置最大上传尺寸
sfu.setSizeMax(MAX_SIZE); PrintWriter out = response.getWriter();
// 从request得到 所有 上传域的列表
List fileList = null;
try {
fileList = sfu.parseRequest(request);
} catch (FileUploadException e) {// 处理文件尺寸过大异常
if (e instanceof SizeLimitExceededException) {
out.println("<script>parent.callback('1')</script>");
return;
}
e.printStackTrace();
}
// 没有文件上传
if (fileList == null || fileList.size() == 0) {
out.println("<script>parent.callback('2')</script>"); return;
}
// 得到所有上传的文件
Iterator fileItr = fileList.iterator();
//定义用户ID
String userid="";
//循环处理所有文件
while (fileItr.hasNext()) {
FileItem fileItem = null;
String path = null;
long size = 0;
// 得到当前文件
fileItem = (FileItem) fileItr.next();
if(fileItem == null || fileItem.isFormField()){
// 如果item是正常的表单域
String name = fileItem.getFieldName();
String value = fileItem.getString();
System.out.print("表单域名为:"+name+"表单域值为:"+value);
if(name.equals("userid")&&value!=null&&!value.equals("")){
userid=value;
}
}
else{
// 如果item是文件上传表单域
// 得到文件的完整路径
path = fileItem.getName();
// 得到文件的大小
size = fileItem.getSize();
if ("".equals(path) || size == 0) {
out.println("<script>parent.callback('3')</script>"); return;
} // 得到去除路径的文件名
String t_name = path.substring(path.lastIndexOf("\\") + 1);
// 得到文件的扩展名(无扩展名时将得到全名)
String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);
// 拒绝接受规定文件格式之外的文件类型
int allowFlag = 0;
int allowedExtCount = allowedExt.length;
for (; allowFlag < allowedExtCount; allowFlag++) {
if (allowedExt[allowFlag].equals(t_ext))
break;
}
if (allowFlag == allowedExtCount) {
out.println("<script>parent.callback('4')</script>"); return;
} long now = System.currentTimeMillis();
// 根据系统时间生成上传后保存的文件名
String prefix = String.valueOf(now);
// 根据上传上来的文件名命名(userid+客户端的当前时间),如果上传文件名不为空,则保存文件
//if(userid.equals("")){
//out.println("文件选择错误,命名失败,请重新操作,选择上传文件.");
// out.println("<FORM> <INPUT TYPE='BUTTON' VALUE='关闭返回' onClick='window.close()'> </FORM> ");
//}else{
//String prefix=userid;
// 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下
System.out.println(request.getRealPath("/"));
String u_name = request.getRealPath("/") + "example/images/Images"
+ prefix + "." + t_ext;
try {
// 保存文件
fileItem.write(new File(u_name));
out.println("<script>parent.callback1('文件上传成功. 已保存为:" + prefix + "." + t_ext
+ " 文件大小: " + size + "',"+u_name+")</script>");
} catch (Exception e) {
e.printStackTrace();
}
}
out.println("<script>alert(123)</script>");
先试试 能alert 123吗?