`
kenshinlk
  • 浏览: 118300 次
  • 性别: Icon_minigender_1
  • 来自: 广东.佛山.南海
社区版块
存档分类
最新评论

上传组件(oreilly)用法demo

阅读更多
java 代码
  1. import java.io.*;   
  2. import java.util.*;   
  3. import javax.servlet.*;   
  4. import javax.servlet.http.*;   
  5.   
  6. import com.oreilly.servlet.MultipartRequest;   
  7.   
  8. public class UploadTest extends HttpServlet {   
  9.   
  10.   public void doPost(HttpServletRequest req, HttpServletResponse res)   
  11.                                 throws ServletException, IOException {   
  12.     res.setContentType("text/html");   
  13.     PrintWriter out = res.getWriter();   
  14.   
  15.     try {   
  16.       // Blindly take it on faith this is a multipart/form-data request   
  17.   
  18.       // Construct a MultipartRequest to help read the information.   
  19.       // Pass in the request, a directory to save files to, and the   
  20.       // maximum POST size we should attempt to handle.   
  21.       // Here we (rudely) write to /tmp and impose a 50 K limit.   
  22. //一般来说dir,filesize,encoding,都是配置在web.xml里面,通过init()方法进行加载,为了直观,demo作者使用hardcode写死      
  23.       MultipartRequest multi =   
  24.         new MultipartRequest(req, "/tmp"50 *1024 * 1024,   
  25.           new com.oreilly.servlet.multipart.DefaultFileRenamePolicy());   
  26.       out.println("<HTML>");   
  27.       out.println("<HEAD><TITLE>UploadTest</TITLE></HEAD>");   
  28.       out.println("<BODY>");   
  29.       out.println("UploadTest");   
  30. // Print the parameters we received   
  31.       out.println("Params:");   
  32. //遍历参数parameter      
  33.       Enumeration params = multi.getParameterNames();   
  34.       while (params.hasMoreElements()) {   
  35.         String name = (String)params.nextElement();   
  36.         String value = multi.getParameter(name);   
  37.         out.println(name + " = " + value);   
  38.       }   
  39.       // Show which files we received   
  40.       out.println("Files:");   
  41. //遍历上传文件名,可通过文件名获取文件      
  42.       Enumeration files = multi.getFileNames();   
  43.       while (files.hasMoreElements()) {   
  44.         String name = (String)files.nextElement();   
  45.         String filename = multi.getFilesystemName(name);   
  46.         String original = multi.getOriginalFileName(name);   
  47.         String type = multi.getContentType(name);   
  48.         File f = multi.getFile(name);   
  49.         out.println("name: " + name);   
  50.         out.println("filename: " + filename);   
  51.         if (filename != null && !filename.equals(original)) {   
  52.           out.println("original file name: " + original);   
  53.         }   
  54.         out.println("type: " + type);   
  55.         if (f != null) {   
  56.           out.println("length: " + f.length());   
  57.         }   
  58.       }   
  59.     }   
  60.     catch (Exception e) {   
  61.       e.printStackTrace(out);   
  62.     }   
  63.     out.println("</BODY></HTML>");   
  64.   }   
  65. }   
分享到:
评论

相关推荐

    Oreilly 上传组件源码

    下面我们将深入探讨Oreilly上传组件源码中的关键知识点。 1. **文件上传原理**:在HTTP协议中,文件上传通常通过表单(`&lt;form&gt;`)的`enctype`属性设置为`multipart/form-data`来实现。这个属性使得浏览器能够将文件...

    com.oreilly.servlet

    标题“com.oreilly.servlet”指向的是一个与Java Servlet相关的组件或库,很可能是一个由O'Reilly Media公司提供的jar包。...然而,具体的实现细节和使用方法,需要参考对应的文档或源代码来进一步了解。

    Java.Swing.OReilly

    1. Swing组件的基本用法和属性设置。 2. 自定义组件和扩展Swing组件。 3. 使用布局管理器构建复杂界面。 4. 事件处理和监听器。 5. 高级特性,如拖放操作、对话框、表格和树视图。 6. 菜单、工具栏和状态栏的创建。 ...

    Oreilly - Python Cookbook

    Oreilly - Python Cookbook,python编程人员必备学习手册

    OReilly C++ Cookbook

    《OReilly C++ Cookbook》是由Jeff Cogswell、Christopher Diggins、Ryan Stephens和Jonathan Turkanis共同编写的,是一本针对C++编程语言的实用指南。这本书以"烹饪书"的形式,提供了大量解决实际编程问题的代码...

    利用 Oreilly MultiPartRequest 解決 上傳檔案 的問題

    Oreilly MultiPartRequest提供了`getMultiFileMap()`方法,它返回一个Map,键是文件输入字段的名字,值是一个FileItem列表,代表该字段上传的所有文件。例如,如果有一个名为"fileUpload"的文件输入字段,你可以这样...

    Oreilly - Python Cookbook, 2nd Edition.chm

    Oreilly - Python Cookbook, 2nd Edition.chm

    Android代码-oreilly_android

    This is the source code referenced in the O'Reilly Online Course: Developing Android Applications with Java. More information can be found here: http://training.oreilly.com/androidapps-java/

    OReilly.Deep.Learning.2017

    OReilly.Deep.Learning.2017

    Oreilly.HTML学习笔记

    Oreilly出版的《HTML and XHTML: The Definitive Guide》是这个领域的权威指南,已经更新到第五版,为读者提供了深入理解HTML和XHTML的全面知识。 HTML是一种标记语言,它的主要作用是定义网页结构,通过不同的标签...

    文件上传下载(oreilly之MultipartReques)

    上述程序中用到的jar 博文链接:https://avery-leo.iteye.com/blog/210695

    Oreilly Python for Data Analysis 2nd 2017原版

    Oreilly Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython Oct 20, 2017 最终版,完整版,清晰版,原版

    OReilly Learning OpenCV

    学习opencv的一本经典英文教材,内容清晰,需要者自行下载,主要章节有: 1. Overview 2. Introduction to OpenCV 3. Getting to Know OpenCV 4、HighGUI 5. Image Processing 6. Image Transforms ...

    JavaPerformanceTuning-Oreilly.pdf

    这部分详细介绍了几种常用的Java性能分析工具,如VisualVM、JProfiler等,以及它们的使用方法。 #### 四、虚拟机版本 - **虚拟机(VM)版本**(Virtual Machine (VM) Versions) - 不同版本的Java虚拟机(JVM)...

    [O REILLY ] Introducing Istio Service Mesh for Microservice 2018 英文原版

    《Introducing Istio Service Mesh for Microservices》是O'Reilly出版社于2018年发布的一本关于Istio服务网格的英文原版书籍,它为读者深入理解并掌握Istio这一微服务领域的关键工具提供了详实的指导。本书旨在帮助...

    OReilly Hands On Machine Learning with Scikit Learn and TensorFlow

    《OReilly Hands On Machine Learning with Scikit Learn and TensorFlow》是一本深度探讨机器学习实践的书籍,涵盖了使用Python中的Scikit-Learn和TensorFlow库进行数据挖掘和模型构建的广泛主题。这本书旨在帮助...

    OReilly.PHP.Cookbook.3rd.Edition

    - 介绍了`strtolower()`、`strtoupper()`、`ucfirst()`等函数的功能和使用方法。 - 讨论了在多语言环境下处理大小写转换的挑战及解决方案。 9. **字符串内插**(1.9 Interpolating Functions and Expressions ...

    Oreilly Python Cookbook 2Nd Edition

    Oreilly Python Cookbook 2Nd Edition

Global site tag (gtag.js) - Google Analytics