问题描述
jsp部分:<formid="add_form"action="addPerson.action"method="post"enctype="multipart/form-data"namespace="/"><div><table><tr><td> </td><td><div><inputid="eduFileName"name="eduFileName"type="text"class="input03"readonly/><inputid="eduFile"name="eduFile"type="file"style="width:0px"onchange="onUploadImgChange(this,'edu')"><inputid="getEduFile"name="getEduFile"type="button"value="选择文件"onclick="eduFile.click();"class="btn03"/><pclass="pic—01"><divid="eduPreviewFake"><imgid="eduPreview"onload="onPreviewLoad(this)"/></div></p></div></td></tr></table>这是一个人员添加页面,大概有40多个字段,其中6个字段需要上传图片并预览,通过submit按钮触发action,将form表单提交到后台Java部分:publicStringaddPerson()throwsException{Staffstaff=newStaff();/StringeduPath=getPath(eduFile,eduFileName);staff.setEduPath(eduPath);returnmsg;将文件上传后,存储路径。现在的问题是,我无法将保存成功或者失败的信息返回到前台使用ajax不可避免的会用到上传控件,而控件会破坏我页面的样式,也就是风格不统一大家有什么好的办法没有?
解决方案
解决方案二:
看了你的需求:不用ajax、form提交、action接收、页面提示现在就简单了。进入页面的action里面随意设置一个变量status,默认值"default"。在进入页面后赋值给form的一个hidden。然后做完操作提交之后,action接收请求,并处理操作。如果成功了,status的值改成"success",失败改成"falure",否则"default"。然后在页面js进行判断status的值。如果是"success",则提示“获取成功”;如果是"falure",则提示“获取失败”;如果是"default",不做任何操作....亲,还有疑问么?不用我贴代码了吧....坑爹,答案打完了,浏览器崩溃,害我重打......
解决方案三:
关键是你的图片还要有预览功能,建议你把图片部分和文字部分分开,图片用ajax,文字部分可以用form表单提交也可以用ajax,建议用ajax。
解决方案四:
引用1楼shijing266的回复:
看了你的需求:不用ajax、form提交、action接收、页面提示现在就简单了。进入页面的action里面随意设置一个变量status,默认值"default"。在进入页面后赋值给form的一个hidden。然后做完操作提交之后,action接收请求,并处理操作。如果成功了,status的值改成"success",失败改成"falure",否则"default"。然后在页面js进行判断status的值。如果是"success",则提示“获取成功”;如果是"falure",则提示“获取失败”;如果是"default",不做任何操作....亲,还有疑问么?不用我贴代码了吧....坑爹,答案打完了,浏览器崩溃,害我重打......
你这个想法我有过,设置一个msg变量,通过struts标签在jsp页面获取,然后直接anert出成功或者失败信息。但是需要在执行完addPerson.action这个action后重新跳转至这个页面<actionname="addPerson"class="NewPerson"method="addPerson"><interceptor-refname="fileUploadStack"/><resultname="success">/WEB-INF/jsp/admin/addPeople.jsp</result></action>这会导致页面数据丢失,其他的数据还可以通过struts标签加载回来,但是图片上传的地方数据没法加载有没有不做跳转的方法?
解决方案五:
引用3楼chentao860606的回复:
Quote: 引用1楼shijing266的回复:
看了你的需求:不用ajax、form提交、action接收、页面提示现在就简单了。进入页面的action里面随意设置一个变量status,默认值"default"。在进入页面后赋值给form的一个hidden。然后做完操作提交之后,action接收请求,并处理操作。如果成功了,status的值改成"success",失败改成"falure",否则"default"。然后在页面js进行判断status的值。如果是"success",则提示“获取成功”;如果是"falure",则提示“获取失败”;如果是"default",不做任何操作....亲,还有疑问么?不用我贴代码了吧....坑爹,答案打完了,浏览器崩溃,害我重打......你这个想法我有过,设置一个msg变量,通过struts标签在jsp页面获取,然后直接anert出成功或者失败信息。但是需要在执行完addPerson.action这个action后重新跳转至这个页面<actionname="addPerson"class="NewPerson"method="addPerson"><interceptor-refname="fileUploadStack"/><resultname="success">/WEB-INF/jsp/admin/addPeople.jsp</result></action>这会导致页面数据丢失,其他的数据还可以通过struts标签加载回来,但是图片上传的地方数据没法加载有没有不做跳转的方法?
不跳转。2种办法。1、ajax2、dwr
解决方案六:
ajax没法获取file类文件吧
解决方案七:
我之前就做了一个这样的功能,写了篇简单的博文,你可以参考一下。http://blog.csdn.net/zmcmm/article/details/37872097
解决方案八:
jquery有个插件交ajaxfileupload不会破坏样式的很好用