处理带说明信息的图片与处理文件上传 四(62)

一 、处理带说明信息的图片与处理文件上传


 void


delete()
          删除保存在临时目录中的文件。


 


 


String


getContentType()  获取文档的类型
          Returns the
content type passed by the browser or null if not defined.


String


getFieldName() 获取字段的名称,即name=xxxx
          Returns the name
of the field in the multipart form corresponding to this file item.

<input type=”file” name=”img”/>


InputStream


getInputStream()
          Returns an InputStream that can be
used to retrieve the contents of the file.


String


getName()
          Returns the original
filename in the client‘s filesystem, as provided by the browser (or other
client software).

获取文件名称。

如果是在IE获取的文件为 c:\aaa\aaa\xxx.jpg –即完整的路径。

非IE;文件名称只是 xxx.jpg


 


long


getSize()  获取文件大小 相当于in.avilivable();
          Returns the size
of the file item


如果你上传是一普通的文本元素,则可以通过以下方式获取元素中的数据

<form enctype=”multipart/form-data”>

    <input
type=”text” name=”name”/>


String


getString()  用于获取普通的表单域的信息。
          Returns the
contents of the file item as a String, using the default character encoding.(IOS-8859-1)


String


getString(String encoding) 可以指定编码格式
          Returns the
contents of the file item as a String, using the specified encoding.


void


write(File file) 直接将文件保存到另一个文件中去。
          A convenience
method to write an uploaded item to disk.


以下文件用判断一个fileItem是否是file(type=file)对象或是text(type=text|checkbox|radio)对象:


 boolean


isFormField()  如果是text|checkbox|radio|select这个值就是true.
          Determines
whether or not a FileItem instance represents a simple form field.

代码:

public class UpDescServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");//可以获取中文的文件名

String path = getServletContext().getRealPath("/up");

DiskFileItemFactory disk =

new DiskFileItemFactory();

disk.setRepository(new File("d:/a"));

try{

ServletFileUpload up =

new ServletFileUpload(disk);

List<FileItem> list = up.parseRequest(request);

for(FileItem file:list){

//第一步:判断是否是普通的表单项

if(file.isFormField()){

String fileName = file.getFieldName();//<input type="text" name="desc">=desc

String value = file.getString("UTF-8");//默认以ISO方式读取数据

System.err.println(fileName+"="+value);

}else{//说明是一个文件

String fileName = file.getName();

fileName = fileName.substring(fileName.lastIndexOf("\\")+1);

file.write(new File(path+"/"+fileName));

System.err.println("文件名是:"+fileName);

System.err.println("文件大小是:"+file.getSize());

file.delete();

}

}

}catch(Exception e){

e.printStackTrace();

}

}

}

二 处理文件上传(性能能够相对之前提升)

核心点用FileItemIterator it= up.getItemIterator(request);处理文件上传。

package cn.hx.servlet;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.PrintWriter;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileItemIterator;

import org.apache.commons.fileupload.FileItemStream;

import org.apache.commons.fileupload.RequestContext;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.commons.fileupload.servlet.ServletRequestContext;

import org.apache.commons.io.FileUtils;

public class FastServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

String path = getServletContext().getRealPath("/up");

DiskFileItemFactory disk =

new DiskFileItemFactory();

disk.setRepository(new File("d:/a"));

try{

ServletFileUpload up = new ServletFileUpload(disk);

//以下是迭代器模式

FileItemIterator it= up.getItemIterator(request);

while(it.hasNext()){

FileItemStream item =  it.next();

String fileName = item.getName();

fileName=fileName.substring(fileName.lastIndexOf("\\")+1);

InputStream in = item.openStream();

FileUtils.copyInputStreamToFile(in,new File(path+"/"+fileName));

}

}catch(Exception e){

e.printStackTrace();

}

}

}

时间: 2024-10-06 08:06:09

处理带说明信息的图片与处理文件上传 四(62)的相关文章

在ASP.NET中实现图片、视频文件上传方式

一.图片 1.在前端用<asp:FileUpload ID="UpImgName" runat="server"/>控件 2.在后台.cs中写上 protected void btnSubmit_Click(object sender,EventArgs e) { string strImgPath=string.Empty; string strDateTime=dateTime.Now.Tostring("yyyyMMddhhmmss&qu

【原创】用JAVA实现大文件上传及显示进度信息

用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容. 比如: Spring 框架中使用类似CommonsMultipartFile对象处理表二进制文件信息. 而.NET 中使用HtmlInputFile/ HttpPostedFile对象处理二进制文件信息. 优点:使用框架内置对象可以很方便的

关于文件上传-图片上传

本次开发采用uploader插件   需要在前台引入 使用该插件的 Uploader.swf文件(用于使用时js指向) 在wingsUploader.js 中对uploader插件进行设置 (function($) { // // 设置属性 var uploader; var ratio = window.devicePixelRatio || 1; //用于缩略图 // var thumbnailWidth = 50 * ratio; //缩略图的宽 // var thumbnailHeigh

【Servlet】利用Servlet3.0标准与JSTL表达式实现文件上传系统,支持图片上传后显示

伴随着JDK1.6一起出现的Servlet3.0标准,使得JSP的文件上传系统不再艰难,此前在JSP的文件上传系统需要<[Jsp]使用jspsmartupload完成简单的文件上传系统>(点击打开链接)类似这样的插件才能完成的文件上传系统,还不支持中文,使得各位程序猿掏空心思才能解决这个问题.现在Servlet3.0对文件上传的方法进行封装,无须分块就可以实现.而且Servlet3.0还不用类似<[Servlet]最简单的Servlet JavaWeb程序>(点击打开链接)在web

AJAX提交form表单带文件上传

过了三天才想要写博客,这样不好,要改正 在做毕设的时候,用户发帖涉及到了文件上传的问题,在这里记录一下 背景: 在用户发帖的时候,用户只想发表文字postText,还有些用户想在发表postText的同时还发表一些图片,如何做? 上代码 不写的太细了,和流水账似的,挑重点记录一下. 1.前台的文件上传 本来想用form表单直接上传了,但是form提交时会刷新整个页面,但这不是我想要的,所以使用了ajax提交form表单. 利用ajax提交表单需要用到jquery.form.js这个包,网上有很多

Ajax带进度条文件上传

Ajax带进度条文件上传 html文件代码: <html> <head> <title>FormData</title> <script type="text/javascript"> /*进度条需要两个最基础的信息------总大小,已上传大小 解决:在html5中有一个上传过程事件,在事件中可以读取这两个信息 ---- onprogress 具体思路: 在上传过程中,不断的触发函数,函数读取已上传/总大小 不断的更新页面的

servlet多文件上传(带进度条)

需要commons-fileupload-1.3.jar和commons-io-2.4.jar的支持 页面效果:(图片文件都可以) (1)进度标识类 public class UploadStatus { private long bytesRead; private long contentLength; private int items; private long startTime = System.currentTimeMillis(); //set get 方法 省略 } (2)监听

带进度条的文件上传

Ajax技术——带进度条的文件上传 1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度,可以在上传文件的同时,显示文件的上传进度条.运行本实例,如图1所示,访问文件上传页面,单击“浏览”按钮选择要上传的文件,注意文件不能超过50MB,否则系统将给出错误提示.选择完要上传的文件后,单击“提交”按钮,将会上传文件并显示上传进度. 2.技术要点 主要是应用开源的Common-FileUpload组件来

如何用jQuery将辅助信息合并到二进制文件里一起上传到WCF

在上传文件的时候,往往需要传递当前用户的一些其它的辅助信息,在此提供一个将这些辅助信息合并入二进制文件中一起上传的方法. 下面代码将选中文件上传的同时,将传送会话Id.文件后缀.文件类型三个参数. 整个合并后的二进制流分成三部分,如下图.第一段用1个字节表示辅助信息的长度,当然,若第二段比较长,则可以用双字节来表示:第二段是辅助信息,这里用json格式的字符串转换成ASCII码数组来表示:第三段为选中文件的实际内容. 页面及JavaScript代码如下: <input id="File&q