简易的上传方法!!

因浏览器差异有的用拆有的不用拆g://123.jpg------->多前面g://


第一种需要拆分的!

package upload.serlvet;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


public class UploadsServlet extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

//k  
upload.setFileSizeMax(1024*1024*100); //100M
try {
List<FileItem> fileItems = upload.parseRequest(request);

for(FileItem fileItem:fileItems){

if(fileItem.isFormField()){
String name = fileItem.getFieldName(); //input name
String value = fileItem.getString(); //input value
System.out.println(name+":"+value);
}else{
String fileName = fileItem.getName(); //文件名称

//C:\Users\chenhongjun\Desktop\tag_1388040641790.txt
D:\视频\day52\录像12.avi
System.out.println(fileName+"------------------");
int index = fileName.lastIndexOf("\\");
if(index!=-1){
  fileName = fileName.substring(index+1);
}

System.out.println(index+"========="+fileName);

//存储的位置
File file = new File("f:\\", uniqueFileName(fileName));
//创建输出流
FileOutputStream fos = new FileOutputStream(file);
//处理上传
InputStream is = fileItem.getInputStream();
//有关流的操作
byte[] buffer = new byte[1024];

int len=0;

while((len=(is.read(buffer)))!=-1){
fos.write(buffer, 0, len);
}

fos.flush();
fos.close();

is.close();

//删除临时文件
fileItem.delete();

}

//1.中文问题 怎么解决  
//2.上传文件的大小限制问题
//3.上传文件类型限制的问题  .jpg .gif .png   
//4.上传的文件 不选择  不让上传.


//D:\视频\day52\录像12.avi
}

} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}




public String uniqueFileName(String fileName){
   //获取.最后出现的索引位置
int index = fileName.lastIndexOf(".");
//截取.之前名称
String fName = fileName.substring(0, index);
//截取的后缀 包括.
String suffix = fileName.substring(index);
//拼接操作
fileName = fName+"_"+System.currentTimeMillis()+suffix;

return fileName;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}


}




第二种不需要拆分的



package upload.serlvet;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


public class UploadServlet extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//第一步:创建DiskFileItemFactory对象 (FileItem) name upload
//采用了默认的缓冲区 和默认的临时文件保存的目录
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();

System.out.println(System.getProperty("java.io.tmpdir"));
//第二步:解析器
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);



try {
//第三步:对请求进行解析
List<FileItem> fileItems = servletFileUpload.parseRequest(request);


//第四步:遍历List集合
for(FileItem fileItem :fileItems){
//判断字段是否是 普通的字段
if(fileItem.isFormField()){
//获取字段的名称
String fieldName = fileItem.getFieldName();
//获取字段的值
String fieldValue = fileItem.getString();
//输出
System.out.println(fieldName+":"+fieldValue);
}else{
//获取文件的名称
String fileName = fileItem.getName();
System.out.println(fileName+"--------");
//存储的位置
File file = new File("F:\\", fileName);
//创建输出流
FileOutputStream fos = new FileOutputStream(file);
//处理上传
InputStream is = fileItem.getInputStream();
//有关流的操作
byte[] buffer = new byte[1024];

int len=0;

while((len=(is.read(buffer)))!=-1){
fos.write(buffer, 0, len);
}

fos.flush();
fos.close();

is.close();

//删除临时文件
fileItem.delete();

}

}

} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}









}


private void test(HttpServletRequest request) throws IOException {
/* String name = request.getParameter("name");
String upload = request.getParameter("upload");

System.out.println(name+"---------"+upload);*/

InputStream is =  request.getInputStream();
byte buffer[] = new byte[1024];
int len=0;

while((len=is.read(buffer))!=-1){
System.out.println(new String(buffer, 0, len));
}

is.close();
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}


}






配好servlet文件

uploads.do


写好界面::::

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


<%@include file="/common/tag.jsp" %>
<%@include file="/common/jquery.jsp" %>
<fmt:setBundle basename="csdn"/>




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>
  
  <body>
 
<!--河软CSDN   ---------------------blog.csdn.net/lipfbk-->

      <form action="${pageContext.request.contextPath}/uploadFile.do" enctype="multipart/form-data" method="post">
               上传者:<input type="text" name="name" /><br/>
               选择文件:<input type="file" name="upload"/><br/>
      <input type="submit" value='<fmt:message key="submit"></fmt:message>'/>
      </form>
  </body>
</html>



                                                               


ok!!!!!!!!!希望对大家有帮助!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值