文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在Java中利用COS实现一个文件上传功能

2023-05-31 07:29

关注

如何在Java中利用COS实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

cos是O'Rrilly公司开发的一款用于HTTP上传文件的OpenSource组件

需要cos.jar,下载地址:http://www.servlets.com/cos/

cos上传文件很简单,比fileupload还简单:但是上传最大我试了试,是800多兆,超过直接崩溃:

java.io.IOException: Posted content length of 1627105576 exceeds limit of 889192448 --->byte,800多M

如何在Java中利用COS实现一个文件上传功能

只需一个servelt即可:

package com.lhy.upload;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import java.util.Enumeration;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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.FileRenamePolicy;@WebServlet(name="CosServlet",urlPatterns="/CosServlet")public class CosServlet extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  //第一步,声明文件的保存目录  String path = getServletContext().getRealPath("/up");  //第二步:文件上传  //声明文件重新命名策略,默认的不行不能重命名,自己实现FileRenamePolicy接口//  FileRenamePolicy rename = new DefaultFileRenamePolicy();  MultipartRequest multiReq = new MultipartRequest(req, path, 1024*1024*100, "UTF-8",new MyRename());  //输出所上传的文件的信息   Enumeration fileNames = multiReq.getFileNames();   while(fileNames.hasMoreElements()){     String name = (String)fileNames.nextElement();     File file = multiReq.getFile(name);//得到上传的文件    if(null != file){       String fileName = multiReq.getFilesystemName(name);  //取得文件名       String contentType = multiReq.getContentType(name);//类型      System.out.println("上传的文件: " +fileName+", 文件类型: "+contentType);     }   }   //输出所提交的表单中其它文本输入域的值   Enumeration formValue = multiReq.getParameterNames();   while(formValue.hasMoreElements()){     String param = (String)formValue.nextElement();     String value = multiReq.getParameter(param);     System.out.println(value);   }   //第三步:如果知道input的name,还可以直接获取信息,   }}class MyRename implements FileRenamePolicy{ @Override public File rename(File file) {  String fileName = file.getName();  String extName = fileName.substring(fileName.lastIndexOf("."));  String uuid = UUID.randomUUID().toString().replace("-","");  String newName = uuid+extName;//abc.jpg  file = new File(file.getParent(),newName);  return file; }}

表单:

<form action="<c:url value='/CosServlet'/>" method="post"    enctype="multipart/form-data">    File1:<input type="file" name="img1"><br /> 说明1:    <input type="text" name="desc1"><br />    File2:<input type="file" name="img2"><br/>    说明2:<input type="text" name="desc2"><br/>    File3:<input type="file" name="img3"><br/>    说明3:<input type="text" name="desc3"><br/>    <input type="submit" />  </form>

关于如何在Java中利用COS实现一个文件上传功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯