在a.jsp页面里有个图片地址的文本框,现在我想让它,在完成图片上传之后自动获得图片的路径(uploadimage.jsp中的图片地址)。但是现在必须刷新后才能获得。
能不能不用session.getAttribute和session.setAttributea.jsp代码
<%@ taglib uri="/WEB-INF/FCKeditor.tld" prefix="FCK" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style></head>
<body>
<form action="" method="post" name="form1" enctype="multipart/form-data">
<td height="45" align="center" valign="middle">图片地址
<input name="imgadd" type="text" id="imgadd" value="<%=session.getAttribute("imgadd")%> " size="70">
<input name="Submit" type="button" id="Submit" onClick="window.open('upload.jsp?formname=form1&editname=imgadd status=no,scrollbars=no,top=20,left=110,width=420,height=165')" value="上 传">
</td>
<p>
<FCK:editor id="content" basePath="/jsp/FCKeditor/" width="600" height="480" skinPath="/jsp/FCKeditor/editor/skins/silver/"
toolbarSet = "Default" >
</FCK:editor><input name="fck" type="submit" value="提交" onClick="Selfck()" >
</form>
</body>
</html>upload.jsp代码
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="45" align="center" valign="middle"><form action="uploadimage.jsp" method="post" enctype="multipart/form-data" name="form1">
请选择上传的图片
<input type="file" name="file">
<input type="submit" name="Submit" value="上传">
</form></td>
</tr>
</table>
</body>
</html>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.jspsmart.upload.*,java.util.*,cn.oof.database.*,cn.oof.house.*"%>
<%
SmartUpload mySmartUpload =new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="UserFiles/Image/"; //应保证在根目录中有此目录的存在
//初始化
mySmartUpload.initialize(pageContext);
//只允许上载此类文件
try {
mySmartUpload.setAllowedFilesList("jpg,gif");
//上载文件
mySmartUpload.upload();
} catch (Exception e){
%>
<SCRIPT language=javascript>
alert("只允许上传.jpg和.gif类型图片文件");
window.location=''upfile.jsp'';
</script>
<%
}
try{ com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){%>
<SCRIPT language=javascript>
alert("请先选择要上传的文件");
window.location=''upfile.jsp'';
</script>
<%}
else{
//String myFileName=myFile.getFileName(); //取得上载的文件的文件名
ext= myFile.getFileExt(); //取得后缀名
int file_size=myFile.getSize(); //取得文件的大小
String saveurl="";
String saveurl2="";
if(file_size<file_size_max){
//更改文件名,取得当前上传时间的毫秒数值
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext; //保存路径
saveurl2=url+filename+"."+ext;
session.setAttribute("imgadd",saveurl2);
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
//out.print(filename);
//-----------------------上传完成,开始生成缩略图-------------------------
java.io.File file = new java.io.File(saveurl); //读入刚才上传的文件
String urlsmall="UserFiles/Image/small/";
String newurl=request.getRealPath("/")+urlsmall+filename+"_min."+ext; //新的缩略图保存地址
Image src = javax.imageio.ImageIO.read(file); //构造Image对象
float tagsize=200;
int old_w=src.getWidth(null); //得到源图宽
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0; //得到源图长
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//计算新图长宽
BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //绘制缩小后的图
FileOutputStream newimage=new FileOutputStream(newurl); //输出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(tag); //近JPEG编码
newimage.close();
out.print("<SCRIPT LANGUAGE='JavaScript'>alert('上传成功');</SCRIPT>"); }
else{
out.print("<SCRIPT language=''javascript''>");
out.print("alert(''上传文件大小不能超过"+(file_size_max/1000)+"K'');");
out.print("window.location=''upfile.jsp;''");
out.print("</SCRIPT>");
}
}
}catch (Exception e){e.toString();}
%>
<script language="javascript">
window.close();
</script>
能不能不用session.getAttribute和session.setAttributea.jsp代码
<%@ taglib uri="/WEB-INF/FCKeditor.tld" prefix="FCK" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style></head>
<body>
<form action="" method="post" name="form1" enctype="multipart/form-data">
<td height="45" align="center" valign="middle">图片地址
<input name="imgadd" type="text" id="imgadd" value="<%=session.getAttribute("imgadd")%> " size="70">
<input name="Submit" type="button" id="Submit" onClick="window.open('upload.jsp?formname=form1&editname=imgadd status=no,scrollbars=no,top=20,left=110,width=420,height=165')" value="上 传">
</td>
<p>
<FCK:editor id="content" basePath="/jsp/FCKeditor/" width="600" height="480" skinPath="/jsp/FCKeditor/editor/skins/silver/"
toolbarSet = "Default" >
</FCK:editor><input name="fck" type="submit" value="提交" onClick="Selfck()" >
</form>
</body>
</html>upload.jsp代码
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="45" align="center" valign="middle"><form action="uploadimage.jsp" method="post" enctype="multipart/form-data" name="form1">
请选择上传的图片
<input type="file" name="file">
<input type="submit" name="Submit" value="上传">
</form></td>
</tr>
</table>
</body>
</html>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.jspsmart.upload.*,java.util.*,cn.oof.database.*,cn.oof.house.*"%>
<%
SmartUpload mySmartUpload =new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="UserFiles/Image/"; //应保证在根目录中有此目录的存在
//初始化
mySmartUpload.initialize(pageContext);
//只允许上载此类文件
try {
mySmartUpload.setAllowedFilesList("jpg,gif");
//上载文件
mySmartUpload.upload();
} catch (Exception e){
%>
<SCRIPT language=javascript>
alert("只允许上传.jpg和.gif类型图片文件");
window.location=''upfile.jsp'';
</script>
<%
}
try{ com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){%>
<SCRIPT language=javascript>
alert("请先选择要上传的文件");
window.location=''upfile.jsp'';
</script>
<%}
else{
//String myFileName=myFile.getFileName(); //取得上载的文件的文件名
ext= myFile.getFileExt(); //取得后缀名
int file_size=myFile.getSize(); //取得文件的大小
String saveurl="";
String saveurl2="";
if(file_size<file_size_max){
//更改文件名,取得当前上传时间的毫秒数值
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext; //保存路径
saveurl2=url+filename+"."+ext;
session.setAttribute("imgadd",saveurl2);
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
//out.print(filename);
//-----------------------上传完成,开始生成缩略图-------------------------
java.io.File file = new java.io.File(saveurl); //读入刚才上传的文件
String urlsmall="UserFiles/Image/small/";
String newurl=request.getRealPath("/")+urlsmall+filename+"_min."+ext; //新的缩略图保存地址
Image src = javax.imageio.ImageIO.read(file); //构造Image对象
float tagsize=200;
int old_w=src.getWidth(null); //得到源图宽
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0; //得到源图长
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//计算新图长宽
BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //绘制缩小后的图
FileOutputStream newimage=new FileOutputStream(newurl); //输出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(tag); //近JPEG编码
newimage.close();
out.print("<SCRIPT LANGUAGE='JavaScript'>alert('上传成功');</SCRIPT>"); }
else{
out.print("<SCRIPT language=''javascript''>");
out.print("alert(''上传文件大小不能超过"+(file_size_max/1000)+"K'');");
out.print("window.location=''upfile.jsp;''");
out.print("</SCRIPT>");
}
}
}catch (Exception e){e.toString();}
%>
<script language="javascript">
window.close();
</script>
楼主【e332424234e】截止到2008-07-08 14:41:40的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
function upload()
{
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
var url = ""; //提交servlet的url
xmlHttp.open("Post",url, true);
xmlHttp.onreadystatechange = getstate;
xmlHttp.send(null);
}
function getstate()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
document.getElementById("showurl").innerHTML=xmlHttp.responseText;
}
}
}
jsp页面
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" language="javascript">
//设一个变量
var XMLHttpReq=false;
//创建一个XMLHttpRequest对象
function getXMLRequester( ){ var xmlhttp_request = false; try{ if( window.ActiveXObject ){ for( var i = 5; i; i-- ){ try{ if( i == 2 ){xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }else{xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" ); xmlhttp_request.setRequestHeader("Content-Type","text/xml");xmlhttp_request.setRequestHeader("Content-Type","utf-8"); }break;} catch(e){ xmlhttp_request = false; } } }else if( window.XMLHttpRequest ){ xmlhttp_request = new XMLHttpRequest(); if (xmlhttp_request.overrideMimeType) { xmlhttp_request.overrideMimeType('text/xml'); } } }catch(e){ xmlhttp_request = false; } return xmlhttp_request ;}
//发送请求函数
function send(url){
XMLHttpReq=getXMLRequester();
XMLHttpReq.open("GET",url,true);
XMLHttpReq.onreadystatechange=proce; //指定响应的函数
XMLHttpReq.send(null); //发送请求
}
function proce(){
if(XMLHttpReq.readyState==4){ //对象状态
if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息
var res=XMLHttpReq.responseXML.getElementsByTagName("content")[0].firstChild.data;
window.alert(res);
}else{
window.alert("所请求的页面有异常");
}
}
}
//身份验证
function check(){
var name=document.getElementById("name").value;
if(name==""){
alert("请输入姓名");
return false;
}
else{
send('servlet/Check?name='+name);
}
}
</script>
</head> <body>
<form action="servlet/Check" method="post">
<table>
<tr>
<td>
姓名:
<input id="name" type="text" name="name" />
<p>
<input type="button" value="检测!" onClick="check()" />
</td>
</tr>
</table>
</form>
</body>
</html>servlet页面package com.oy.TestAjax;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Check extends HttpServlet { /**
*
*/
private static final long serialVersionUID = 4365604152068351525L;
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
//设置接收的信息的字符集
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
//设置输出的信息的格式及字符集
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
//创建输出流
PrintWriter out=response.getWriter();
out.println("<pront>");
if(name.equals("bruce")){
out.println("<content>"+"对不起,此网名已注册!"+"</content>");
}else{
out.println("<content>"+"此网名可以注册!"+"</content>");
}
out.println("</pront>");
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException { doGet(request,response);
}
public void init() throws ServletException {
}}