站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题求一个FileUpload上传照片的例子,大家帮忙啊

求一个FileUpload上传照片的例子,大家帮忙啊

摘要: 求一个FileUpload上传照片的例子,大家帮忙啊


求一个FileUpload上传照片的例子,大家帮忙啊?最好是1.0以上的,我小菜看API挺累,调通就加分!!!谢谢


我写的1.1最新的,已经调通
post.jsp
<form name="Webform" action="upload.jsp" method="post" enctype="multipart/form-data">
输入你的名字:

<input type="text" name="name" size="15" value="张月"/>

图形:

<input type="file" name="myimage">

文件:

<input type="file" name="myfile">


<input type="submit" name="Submit" value="Submit your files"/>
</form>

=================================
upload.jsp

<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.File"%>
<%@ page import="java.text.*"%>

<%@ page import="org.apache.commons.fileupload.FileItem"%>
<%@ page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.FileUpload"%>

<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>

<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.FileUploadBase"%>
<%@ page import="org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException"%>




<%

// 检查输入请求是否为multipart的表单数据。
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(!isMultipart){
out.print("表单数据格式不是multipart/form-data,或者非法提交");
return;
}

DiskFileItemFactory factory = new DiskFileItemFactory();// Create a factory for disk-based file items
factory.setSizeThreshold(1024000);// 设置初始化内存,如果上传的文件超过该大小,将不保存到内存,而且硬盘中(单位:byte)
File fileTemp = new File("c://temp");// 建立临时目录
fileTemp.mkdir();
/*
如果上传的文件超过设置内存的大小,将文件保存至该目录,
待文件上传完毕后,自动删除上传的临时文件;
如果多次上传同一个文件,该文件会保存到服务器的临时目录,而不删除
*/
factory.setRepository(fileTemp);


ServletFileUpload upload = new ServletFileUpload(factory);// 创建文件上传对象
upload.setSizeMax(1024000);// 设置客户端最大上传,-1为无限大(单位:byte)

//FileUploadBase.SizeLimitExceededException


List items = null;
try {
items = upload.parseRequest(request);// 分析request,并将保存结果至List里
} catch(SizeLimitExceededException e){
out.print("上传的文件超过系统限制(1MB)");
return;
}


Iterator itr = items.iterator();

while(itr.hasNext()) {// 循环处理表单元素
FileItem item = (FileItem) itr.next();

if(item.isFormField()) {// 普通的表单
if("name".equals(item.getFieldName())){
String name = item.getFieldName();
String value = item.getString("GB2312");
out.print(name+ ":" + value);
}


} else {// 上传文件
if(item.getSize()!=0){
String filename = item.getName();// 获取文件的客户端上传路径
int i = filename.lastIndexOf("//");

filename = filename.substring(i+1);// 获取文件名
File savedFile = new File(getServletContext().getRealPath("/") + "temp", filename);
item.write(savedFile);
}
}
}

%>



mark


网上的教程大多都上老的版本,我最近用到下的最新1。1版本。改动不少。


web.xml要配置吗?如何配置?我只是把那个JAR放到了lib下程序运行说没找到类


web.xml不需要配置。需要注意的是光一个commons-fileupload-1.1.1.jar没用,因为它需要调用另一个包(commons-io-1.2.jar),因此在lib目录下那两个jar一定要都具备。


楼上说的对,需要common-io-xx.jar
web.xml不用设置的。


mark


路过..........友情UP......

//___________送个笑话____________
一个年轻力壮的男子来到西药店里,表示要买一种效力强大、保证持久的春药,他向老板解释道:“今天晚上,我要应付两个骚女子,我要表现我的厉害给她们看看。”
  药剂师给了他一些保证有效的药丸,并且建议他最好立刻服用,因为药性要过一段时间才会生效。男子照着做后,回去等他的客人。
  第二天,他狼狈不堪的来到西药店。
  “你看起来好像精疲力尽了。”药剂师微笑的说道。
  “别提了!”男子呻吟道:“给我一点破皮软膏。”
  “擦你的……”
  “擦我的手,她们昨晚都没来!”男子咆哮道。

www.xiaohua007.com

哦。原来如此。
留名,关注
我的问题就是上传后不能正常打开。。除了txt文件/代码如下:
jsp:
<form method="post" id="upform" name = "upform" action="action.UploadOfAssembleAction.do" enctype="multipart/form-data">
3:上传日报表。
<table width="100%" border="1" >
<tr>
<td width="55%">
<input type="file" name="fileone" size="60">
</td>
<td width="45%">
<input id="submit" name = "submit" type="submit" value="上传" /><input type="reset" value="取消"/>
    </td>
</tr>
</table>
</form>

*****************************************8
action如下:
**********************************************
import java.io.File;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.*;

public class UploadOfAssembleAction extends BasicAction implements Action
{
public void act(HttpServletRequest req)
{
try
{
String tempFilepath = "D://uptemp//";
String savepath="D://tomcat5.0//Tomcat 5.0//webapps//JACMES249//Excel//";
//如果没有临时目录,则创建它
if(!(new File(tempFilepath).isDirectory())){
try{
new File(tempFilepath).mkdirs();
}catch(SecurityException e){
System.out.println("can not make security direcoty");
}
}

//如果没有上传目的目录,则创建它
if(!(new File(savepath).isDirectory())){
try{
new File(savepath).mkdirs();
}catch(SecurityException e){
System.out.println("can not make security direcoty");
}
}

boolean isMultipart = ServletFileUpload.isMultipartContent(req);
if(!isMultipart){
System.out.println("表单数据格式不是multipart/form-data,或者非法提交");
return;
}
DiskFileItemFactory factory =new DiskFileItemFactory ();
// factory.setRepository(tempFilepath);
ServletFileUpload upload = new ServletFileUpload(factory);// 创建文件上传对象

//upload.setSizeThreshold(4096); //
upload.setSizeMax(2621440); //最大允许上传2.5M的文件
//upload.setRepositoryPath(tempFilepath);

String s =DiskFileUpload.FORM_DATA;
System.out.println(s);
List uploadlist= upload.parseRequest(req);
Iterator iter=uploadlist.iterator();

while(iter.hasNext())
{
FileItem item=(FileItem)iter.next();

//if(item.isFormField())
//{
//String formname=item.getFieldName(); //得到表单中元素的name
//String formvalue =item.getString(); //得到表单中元素的value
//}
if(!item.isFormField())
{
String filename=item.getName();

filename = filename.substring(filename.lastIndexOf("//")+1);//从全路径中提取文件名
//filename=FilenameUtils.getName(filename);
// out.println(name);
long size = item.getSize();
if((filename == null) || filename.equals("") && size == 0)
continue;
savepath= savepath+filename;
//System.out.println("savepath is "+savepath);
File saveFilepath = new File(savepath);
item.write(saveFilepath);
}
}
}catch(Exception ex)
{
ex.printStackTrace();
System.out.println("程序发生错误,抛出异常为 "+ex.getMessage());
}
}
}

不知道什么原因。大虾们帮忙


↑返回目录
前一篇: 求助 数据库查询问题
后一篇: 这是啥问题????