【COS上传文件】实现文件重命名

【COS上传文件】实现文件重命名


一、功能描述

1、使用COS包实现文件的上传功能,其中上传的核心类是:MultipartRequest   重命名的类是: FileRenamePolicy

2、实现上传项目的结构:



二、上传实例

1、上传文件前端页面代码:在index.jsp文件中实现访问项目默认页面跳转到选择文件的jsp页面。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    This is my JSP page. <br>
    <jsp:forward page="jsps/Upload.jsp"></jsp:forward>
  </body>
</html>

2、选择上传文件页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Upload.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    This is my JSP page. <br>
    <form action="UpServlet" method="post" enctype="multipart/form-data">
    	图片<input type="file" name="imgs"/></br>
    	<input type="submit" value="上传"/></br>
    </form>
  </body>
</html>


3、文件上传核心类

package com.test.cos;

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;

import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
import com.oreilly.servlet.multipart.FileRenamePolicy;

public class UpServlet extends HttpServlet {

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("UTF-8");
		//申明文件上传的路径
		String path = getServletContext().getRealPath("/up");
		//设置一个名称
		FileRenamePolicy reName = 
				new DefaultFileRenamePolicy();
		//开始上传,MultipartRequest构造方法的参数reName是DefaultFileRenamePolicy()的对象,这个必须有才能实现重命名。UTF-8没有就会出现乱码
		MultipartRequest req = new MultipartRequest(request,path,1024*1024*10,"UTF-8",reName);
		System.out.println("上传成功");
		
		//显示信息
		response.setContentType("text/html;charset=UTF-8");
		
		String oldName = req.getOriginalFileName("imgs");
		String newName = req.getFilesystemName("imgs");
		long size = req.getFile("imgs").length();
		String contentType = req.getContentType("imgs");
		
		PrintWriter out = response.getWriter();
		
		out.println("本地文件名称:"+oldName+"<br/>"+"文件上传后重命名为:"+newName+"<br/>"+"文件大小为:"+size+"<br/>"+"文件类型:"+contentType+"<br/>");
		out.println("上传成功");
	}

}

三、测试上传文件

1、访问项目地址:http://127.0.0.1:8080/test24_1/      项目默认访问index.jsp页面,在index.jsp页面中实现转发到Upload.jsp页面


2、上传文件的结果

在浏览器中输出上传文件的信息:


在tomcat设置的上传路径中显示上传的文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值