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. Spring的IoC容器-Spring BeanFactory容器

    虽然这个方法已经在3.1之后已经弃用了,但是可以了解一下. 在Spring中,有大量对BeanFactory接口的实现.其中,最常被使用的是XmlBeanFactory类.这个容器从一个XML文件中读 ...

  2. Go -- go语言指针

    package main import "fmt" type Test struct { Name string } func change2(t *Test) { t.Name ...

  3. 【Todo】【读书笔记】Career Cup 150笔记

    下载了第五版:/Users/baidu/Documents/Data/Interview/算法与数据结构/<CareerCup+Top+150+Questions+5th.pdf> 参考这 ...

  4. k-svd字典学习,稀疏编码

    1.     K-SVD usage: Design/Learn a dictionary adaptively to betterfit the model and achieve sparse s ...

  5. 【c专家编程】分析c语言的声明

    联合: 在结构中,每个成员依次存储,而在联合中,所有成员都从偏移地址零开始存储,联合一般被用来节省空间,用法和struct相同. union bits32_tag { int whole; // 一个 ...

  6. ZT:三十个好习惯

  7. 上篇:es5、es6、es7中的异步写法

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载联系作者并保留声明头部与原文链接https://luzeshu.com/blog/es-async 本博客同步在http://www.cnbl ...

  8. SQL server 数据库

    SQL server 的开启关闭和暂停 数据库表格

  9. cocos2dx 3.0打包android遇到的错误(持续更新)

    1.编译时遇到找不到文件的错误:比如fatal error: cocos-ext.h: No such file or directory    , fatal error: CocosGUI.h: ...

  10. 王立平--Unity破解

    1.下载破解工具.关闭Unity,打开破解工具 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQyNTUyNw==/font/5a6L5L2T/ ...