jsp表单

<%@ page language="java" pageEncoding="utf-8"%>

<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head> <body>
<form action="cos.jsp" method="post" enctype="multipart/form-data">
<input type="text" name="info1"><br>
<input type="text" name="info2"><br>
<input type="file" name="userface1"><br>
<input type="file" name="userface2"><br>
<input type="file" name="userface3"><br>
<input type="submit" name="mysub" value="upfile">
</form>
</body>
</html>

cos组件实现文件上传 jsp代码

<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="java.io.File"%>
<%@ page import="com.oreilly.servlet.multipart.FilePart"%>
<%@ page import="com.oreilly.servlet.multipart.ParamPart"%>
<%@ page import="com.oreilly.servlet.multipart.Part"%>
<%@ page import="com.oreilly.servlet.multipart.MultipartParser"%>
<%
//使用cos组件实现文件上传
MultipartParser mp = new MultipartParser(request, 10 * 1024 * 1024);
Part part;
mp.setEncoding("utf-8");//取决于来源页面的编码,如果是表态的应为gbk,如果是jsp应为utf-8
int ii = 0;
while ((part = mp.readNextPart()) != null) {
String name = part.getName();
if (part.isParam()) {
ParamPart paramPart = (ParamPart) part;
String value = paramPart.getStringValue();
out.println("param: name=" + name + "; value=" + value);
System.out.println(value);
} else if (part.isFile()) {
FilePart filePart = (FilePart) part;
String fileName = filePart.getFileName();
if (fileName != null) {
long size = filePart.writeTo(new File(this.getServletContext().getRealPath("/upload")));
out.println("file: name=" + name + "; fileName=" + fileName +
", filePath=" + filePart.getFilePath() +
", contentType=" + filePart.getContentType() +
", size=" + size);
}else {
out.println("file: name=" + name + "; EMPTY");
}
out.print(fileName);
}
}
%>

--------------------------------------------------------------------------------------------------------

文件命名机制

1.根据uuid

import java.io.File;
import java.util.UUID; import com.oreilly.servlet.multipart.FileRenamePolicy; public class MyUuid implements FileRenamePolicy { @Override
public File rename(File f) {
String body = UUID.randomUUID().toString();
String ext = "";
int pot = f.getName().lastIndexOf(".");
if (pot != -1) {
ext = f.getName().substring(pot);
}
String newName = body + ext;
f = new File(f.getParent(), newName);
return f;
} }

2.根据时间随机数

import java.io.File;
import java.util.UUID; import com.oreilly.servlet.multipart.FileRenamePolicy; public class MyRandom implements FileRenamePolicy { @Override
public File rename(File f) {
String body = String.valueOf(System.currentTimeMillis());
String ext = "";
int pot = f.getName().lastIndexOf(".");
if (pot != -1) {
ext = f.getName().substring(pot);
}
String newName = body + ext;
f = new File(f.getParent(), newName);
return f;
} }

3.上传文件并改名字

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>cc.html</title>
</head> <body>
<form action="cc.jsp" method="post" enctype="multipart/form-data">
姓名:<input type="text" name="uname"><br>
文件1:<input type="file" name="ufile1"><br>
文件2:<input type="file" name="ufile2"><br>
<input type="submit" value="提交">
</form> </body>
</html>
<%@page import="com.MyRandom"%>
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@ page import="com.MyUuid"%>
<%@ page import="java.io.File"%>
<%
//使用cos组件实现文件上传
String path = this.getServletContext().getRealPath("/upload");
//MultipartRequest req = new MultipartRequest(request, path, "utf-8");
//out.print(req.getParameter("uname"));
//out.print("<hr>");
//out.print(req.getFile("ufile1").getName());
//out.print(req.getFile("ufile2").getName()); //MultipartRequest req = new MultipartRequest(request,path,10*1024*1024,"utf-8",new MyUuid());
MultipartRequest req = new MultipartRequest(request,path,10*1024*1024,"utf-8",new MyRandom());
out.print(req.getFile("ufile1").getName()); %>

-------------------------------------------------------------------------------------------------------

用servlet技术用cos组建实现上传下载

一、JSP页面如下:

jsp实现文件上传(二)用cos组件实现文件上传的更多相关文章

  1. python 文件操作(二) 替换性修改文件内容

    正常情况我们想要仅对文件某一行的内容进行修改,而不改变其他内容,在原文件的基础上不能修改,因为当我们对原文件进行写操作时,如果原文件里面有内容,就会清空,在这种情况下,只能对文件进行替换性修改:即重新 ...

  2. 【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题

    response.setContentType("text/html; charset=UTF-8");  Boolean isMultipart = ServletFileUpl ...

  3. 关于GC(上):Apache的POI组件导致线上频繁FullGC问题排查及处理全过程

    某线上应用在进行查询结果导出Excel时,大概率出现持续的FullGC.解决这个问题时,记录了一下整个的流程,也可以作为一般性的FullGC问题排查指导. 1. 生成dump文件 为了定位FullGC ...

  4. vue 父组件给子组件传值 Vue父组件给子组件传方法 Vue父组件把整个实例传给子组件

    Home.vue <template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> <v-header ...

  5. 利用 cos 组件实现jsp中上传附件

    需求:在web功能中附件上传功能为最基本的功能之一,所以用cos组件做了一个附件上传的demo.附件上传功能的实现可以利用其它的java组件实现,相关资料网上比较多. 说明步骤:下载组件并安装 --& ...

  6. JSP+Servlet中使用cos.jar进行图片上传(文件上传亦然)

    链接:JSP+Servlet中使用jspsmartupload.jar进行图片上传下载 关于cos.jar,百度百科只有这么几句话(http://baike.baidu.com/subview/406 ...

  7. 模拟文件上传(二):使用apache fileupload组件进行文件上传

    其中涉及到的jar包: jsp显示层: <%@ page language="java" import="java.util.*" pageEncodin ...

  8. iOS开发AFN使用二:AFN文件下载与文件上传

    #import "ViewController.h" #import "AFNetworking.h" @interface ViewController () ...

  9. 上传大文件到腾讯云cos遇到的一些问题

    讲一个开发遇到的问题. 开发中遇到一个需求,需要在后台表单页面支持上传视频.因为项目中一直用的是腾讯云的COS做第三方存储平台,所以视频也要上传到cos中保存.首先想到的是使用腾讯提供的php的SDK ...

随机推荐

  1. rm -rf /* 注意

    mkdir -p ~/.trash  //创建一个目录作为回收站,这里使用的是用户家目录下的.trash目录 alias rm=trash  //命令别名 rm改变为trash,通过将rm命令别名值t ...

  2. iOS的应用程序实现之间的内容分享

    前言 我们在iOS的平台上想要实现不同应用之间的内容分享一般有几种常用方式: 一种第的英文通过AirDrop实现不同设备的应用之间文档和数据的分享; 第二种是给每个应用程序定义一个URL方案,通过访问 ...

  3. 常用Git命令手册

    常用Git命令手册 此文只是对Git有一定基础的人当记忆使用,比较简略,初级学员强烈推荐廖雪峰老师的Git系列教程,通俗易懂,戳此处即可开始学习 1.安装Git Linux sudo apt-get ...

  4. Android 系统广播机制

    一.Android应用程序注冊广播接收器(registerReceiver)的过程分析 參考Android应用程序注冊广播接收器(registerReceiver)的过程分析http://blog.c ...

  5. 浅谈xss原理

    近日,论坛上面XSS满天飞,各处都能够见到XSS的痕迹,前段时间论坛上面也出现了XSS的迹象.然后我等小菜不是太懂啊,怎么办?没办法仅仅有求助度娘跟谷歌这对情侣了. 能够说小菜也算懂了一些.不敢藏私, ...

  6. C++ string string string string string string string string string string

    一. 初始化 string s1="i love you"; string s2(s1); //把s2初始化为string s1,注意不能写成string s2; s2(s1); ...

  7. java:[1,0] illegal character: \65279 问题

    部署项目的时候报下面错误 [java] view plaincopyprint? java:[1,0] illegal character: \65279 java:[1,10] class, int ...

  8. angularjs中常见错误

    使用angularjs时间不是非常长,理解不够透彻.但为刚開始学习的人还是能够帮助点的. 1.回调函数. . ...-->切记它是异步的,出现莫名其妙的问题记得查看一下 2.内存泄露. .... ...

  9. lint (software)

    lint (software) - Wikipedia https://en.wikipedia.org/wiki/Lint_(software) A linter or lint refers to ...

  10. top swap

    显示交换空间(虚拟内存)的使用情况