response.sendRedirect("")与文件上传下载

最近为客户远程更新系统时由于网速很慢,在处理一些客户从后台上传到项目中的文件(在前台需要显示,主要为图片和视频)时特别费时,所以想到把文件放到硬盘上指定的文件夹下(如:E:\upload),然后再服务器启动的时候同时部署这个文件夹,这样我们在后台上传文件时只需要指定文件名称(如:测试图片.png),然后在action中做一些处理即可,具体看下面:

服务器(Tomcat)启动时同时部署文件夹,在tomcat/conf/server.xml文件中的<Host></Host>标签之间添加如下,

<Context  path="/images"  docBase="E:\upload" debug="0" reloadable="true"/>
后台action处理代码,

response.setContentType("text/html;charset=utf-8"); 
			response.sendRedirect("/images/" + URLEncoder.encode(fileName, "utf-8"));  // fileName为E:\upload下的文件名称,"/images/"为访问路径

为了避免在访问不到以中文命名的文件,修改Tomcat的编码格式也为"utf-8",

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="utf-8"/>

同时补充添加Tomcat中tomcat/conf/web.xml下<mime-mapping>,这样是为了在访问文件时以指定格式下载或打开(web.xml下<mime-mapping>的已经默认添加了很多文件mime类型),我在此补充添加了,

<mime-mapping>
	    <extension>docx</extension>
	    <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.document</mime-type>
	</mime-mapping>
	
	<mime-mapping>
	    <extension>pptx</extension>
	    <mime-type>application/vnd.openxmlformats-officedocument.presentationml.presentation</mime-type>
	</mime-mapping>
	
	<mime-mapping>
	    <extension>xlsx</extension>
	    <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
	</mime-mapping>
这样就可以在后台添加文件时直接指定上传文件的名称即可,然后直接把相应文件复制到上传的文件夹,这中间看似没什么,但却使我们在部署项目之前省去了从后台上传文件到项目文件夹,然后还需要把这个文件夹也上传到远程服务器,这样较少了远程部署项目时费时费力的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
public void save() { String title = request.getParameter("title"); String pubren = request.getParameter("pubren"); String pubtime = request.getParameter("pubtime"); String laiyuan=request.getParameter("laiyuan"); String dcontent = request.getParameter("dcontent"); String tupian2 = request.getParameter("tupian2"); String lanmuid = request.getParameter("lanmuid"); String lanmuming = request.getParameter("lanmuming"); String tuijian=request.getParameter("tuijian"); String hot=request.getParameter("hot"); String zuixin=request.getParameter("zuixin"); String zhaiyao=request.getParameter("zhaiyao"); String style=request.getParameter("style"); SimpleDateFormat sdfxinxi = new SimpleDateFormat("yyyy-MM-dd"); Xinxi xinxi = new Xinxi(); xinxi.setTitle(title == null ? "" : title); xinxi.setPubren(pubren == null ? "" : pubren); xinxi.setPubtime(new Date()); xinxi.setHot(hot!=null?1:0); xinxi.setTuijian(tuijian!=null?1:0); xinxi.setZuixin(zuixin!=null?1:0); xinxi.setClickcount(0); xinxi.setZhaiyao(zhaiyao==null?"":zhaiyao); xinxi.setDcontent(dcontent == null ? "" : dcontent); xinxi.setTupian2(tupian2 == null ? "" : tupian2); xinxi.setAgainstcount(0); xinxi.setAgreecount(0); xinxi.setLanmuid(new Integer(lanmuid)); xinxi.setLanmuming(lanmuming == null ? "" : lanmuming); DALBase.save(xinxi); try { if(style!=null&&style.equals("admin")) response.sendRedirect("xinximanager.do?actiontype=get&seedid=201&lanmuid="+xinxi.getLanmuid()); if(style!=null&&style.equals("huiyuan")) response.sendRedirect("../e/myxinximanager.jsp?seedid=m2"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /****************************************************** *********************** 内部附件支持*****public void attachements(HttpServletRequest request, HttpServletResponse response, String belongid) { DALBase.delete("attachement", MessageFormat.format( " where belongid=''{0}'' and belongtable=''xinxi'' ", belongid)); String[] photos = request.getParameterValues("fileuploaded"); if (photos == null) return; for (int i = 0; i < photos.length; i++) { Attachement a = new Attachement(); a.setType("images"); a.setPubtime(new Date()); a.setBelongfileldname("id"); a.setFilename(photos[i]); a.setBelongid(belongid); a.setBelongtable("xinxi"); a.setUrl(SystemParam.getSiteRoot() + "/upload/temp/" + a.getFilename()); a.setTitle(a.getFilename()); DALBase.save(a); } }解释每一行代码* ***
最新发布
06-11

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值