java上传文件

来源:互联网 发布:淘宝购买记录查询器 编辑:程序博客网 时间:2024/05/22 04:57

一、页面简单例子

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="UTF-8"%>
<%@ page import="javax.imageio.ImageIO" %>
<%@ page import="javax.imageio.IIOException" %>
<%@ page import="java.awt.image.BufferedImage" %>;
<%@ page import="java.awt.Image" %>
<%@ page import="java.io.File" %>
<%@ page import="java.awt.image.AffineTransformOp" %>
<%@ page import="java.awt.geom.AffineTransform" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>


<%
try 
{        //如果是windows,File fi=new File("c:\\abc\\aaa.jpg");


File fi = new File("/pics/original/111.jpg"); //大图文件
File fo = new File("/pics/thumbnail/222.jpg"); //将要转换出的小图文件
//File fi=new File("F:\\111.jpg");
//File fo = new File("F:\\222.jpg");
int nw = 100;//新的长度
AffineTransform transform = new AffineTransform();
BufferedImage bis = ImageIO.read(fi);
//
int w = bis.getWidth();//原来的长度
int h = bis.getHeight();//原来的高度
double scale = (double)w/h;
int nh = (nw*h)/w ;//新的高度
//
double sx = (double)nw/w;//宽度比例
double sy = (double)nh/h;//高度比例
transform.setToScale(sx,sy);
System.out.println(w + " " +h);
//
AffineTransformOp ato = new AffineTransformOp(transform,null);
BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
ato.filter(bis,bid);
ImageIO.write(bid,"jpeg",fo);

catch(Exception e) 
{
out.println(e);
}


%>


</body>

</html>


二、页面加java程序实现上传功能

1、jsp页面

 <form action="demo/upload_order_file.do?userId=1&orderId=1" method="post" enctype="multipart/form-data">


           <input type="text" name="info"/><br>


           <input type="file" name="file"/><br>
           
          
           <input type="submit" value="submit">


      </form>

2、java程序

int userid=Integer.parseInt(req.getParameter("userId").trim());
int folderid=Integer.parseInt(req.getParameter("cloudFolderId").trim());
        

Map model=new HashMap();
TbCldFolder folder=fileService.getFolder(userid, folderid);
if(folder!=null){
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置上传工厂的限制
factory.setSizeThreshold(1024 * 1024 * 20);
// 设置上传的路径
factory.setRepository(new File(super.getServletContext().getRealPath("/")));
// 根据上传工厂获取servletfileupload对象
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件的大小
upload.setSizeMax(1024 * 1024 * 20);
// 正式解析数据
List items = null;
String recordurl="";
try {
items = upload.parseRequest(req);
} catch (FileUploadException e) {
e.printStackTrace();
}
Iterator it = items.iterator();
while (it.hasNext()) {
FileItem item = (FileItem) it.next();
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString("gbk");
} else {
// 获取字段的名字
String fieldName = item.getFieldName();
// 获取文件的名字
String fileName = item.getName();
// test.jpg
// 获取文件的名字可以根据不同的后缀进行处理
// // 以当前时间来生成上传的文件名字"//pics//original//"  "F:\\tupian\\"
recordurl="/pics/original/"
+ System.currentTimeMillis()
+ fileName.substring(fileName.lastIndexOf("."),
fileName.length());
// recordurl="F:\\tupian\\"
// + System.currentTimeMillis()
// + fileName.substring(fileName.lastIndexOf("."),
// fileName.length());
FileOutputStream fos = new FileOutputStream(recordurl);
// 如果上传文件已经在内存中
if (item.isInMemory()) {
fos.write(item.get());
} else {
// 获取文件的输入流
InputStream is = item.getInputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
is.close();
}
fos.close();
}
}

原创粉丝点击