您的位置:

java上传附件,如何上传附件

本文目录一览:

上传附件 java 代码

SmartUpload上传图片

记得下载jar包啊

别忘了把名改成smartUpload.jar

Utility类:

package com.tidyinfo.utils;

import java.util.Calendar;

public class Utility {

//生成形如:\2006\08\18的路径

private String path;

//生成形如: 20060818125012的唯一id号

private String id;

//生成形如:/2006/08/18的路径

private String url;

private String hour;

private String year;

private String month;

private String day;

private String minate;

private String second;

/** Creates a new instance of Utility */

public Utility() {

this.year =new Integer(Calendar.getInstance().get(Calendar.YEAR)).toString();

this.month = parseToString(Calendar.getInstance().get(Calendar.MONTH)+1);

this.day = parseToString(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));

this.hour = parseToString(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));

this.minate = parseToString(Calendar.getInstance().get(Calendar.MINUTE));

this.second = parseToString(Calendar.getInstance().get(Calendar.SECOND));

this.setId();

this.setPath();

this.setUrl();

}

protected String parseToString(int i){

return i10?("0"+i):new Integer(i).toString();

}

public String getId(){

return this.id;

}

public String getPath(){

return this.path;

}

public String getUrl(){

return this.url;

}

protected void setId(){

this.id = this.year+this.month+this.day+this.hour+this.minate+this.second;

}

protected void setPath(){

this.path = "\\"+this.year + "\\" + this.month + "\\" +

this.day ;

}

protected void setUrl(){

this.url = this.path.replace('\\','/');

}

}

Action:(根据不同情况要更改相关代码)

User userForm = new User();

String result = new String();

SmartUpload su = new SmartUpload();

//文件名

String filename = new String();

//文件扩展名

String fileext = new String();

//文件上传后存储的路径

String path = request.getRealPath(request.getContextPath());

path = path.substring(0,path.lastIndexOf("\\"));

path += "\\images";

//图片的url

String url = new String();

//创建文件夹

java.io.File file = new java.io.File(path);

file.mkdirs();

try{

// 上传初始化

su.initialize(this.servlet.getServletConfig(),request,response);

//设定上传限制

//1.限制每个上传照片的最大长度。

su.setMaxFileSize(5000000);

//2.限制总上传数据的长度。

su.setTotalMaxFileSize(10000000);

//3.设定允许上传的照片(通过扩展名限制)。

su.setAllowedFilesList("jpg,gif,GIF,JPG");

//上传照片

su.upload();

//获得请求的表单数据

String username = su.getRequest().getParameter("username");//username

String password = su.getRequest().getParameter("password");//password

String sex = su.getRequest().getParameter("sex");//sex

String email =su.getRequest().getParameter("email");//email

String apwd =su.getRequest().getParameter("apwd");//question of password

String rpwd =su.getRequest().getParameter("rpwd");//anser of password

userForm.setUsername(username);

userForm.setPassword(password);

userForm.setSex(sex);

userForm.setEmail(email);

userForm.setApwd(apwd);

userForm.setRpwd(rpwd);

//将上传照片全部保存到指定目录

if(!su.getFiles().getFile(0).isMissing()){

su.save(path,su.SAVE_PHYSICAL);

//文件名

filename = su.getFiles().getFile(0).getFileName();

//得到扩展名

fileext = su.getFiles().getFile(0).getFileExt();

//给图片改名,命名形如:20060814135411.gif

Utility u = new Utility();

String newName = u.getId()+"."+fileext;

java.io.File oldFile = new java.io.File(path+"\\"+filename);

java.io.File newFile = new java.io.File( path + "\\"+newName);

//上传图片的url

url = request.getContextPath()+"/images/"+newName;

if(oldFile!=null){

oldFile.renameTo(newFile);

}else{

result+="命名出错!";

}

System.out.println("0000000000000000000"+filename);

System.out.println("0000000000000000000"+path+"\\"+newName);

System.out.println("0000000000000000000"+url);

System.out.println(result);

}

}catch(com.jspsmart.upload.SmartUploadException e){

result += "file出错信息:";

result += e.getMessage();

System.out.println(result);

}

java:上传附件功能,点击上传,上传成功后还在本页面,问附件的路径怎么才能保存下来不清空求解啊谢谢了

您好,这样:第一,jsp上传页面内容:

%@ page contentType="text/html; charset=GBK" %

%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %

html

head

title

jsp1

/title

/head

body bgcolor="#ffffff"

html:form action="myupload.do" method="post" enctype="multipart/form-data"

html:file property="thisFile"/br

html:file property="thisFile"/br

html:submit/

/html:form

/body

/html

第二,一个javabean

package upload;

import org.apache.struts.action.ActionForm;

import org.apache.struts.upload.FormFile;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;

public class FileInfo extends ActionForm {

private FormFile thisFile;

public FormFile getThisFile() {

return thisFile;

}

public void setThisFile(FormFile thisFile) {

this.thisFile = thisFile;

}

public ActionErrors validate(ActionMapping actionMapping,

HttpServletRequest httpServletRequest) {

/** @todo: finish this method, this is just the skeleton.*/

return null;

}

public void reset(ActionMapping actionMapping,

HttpServletRequest servletRequest) {

}

}

第三,一个action

package upload;

import java.io.*;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionForm;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.Action;

import org.apache.struts.upload.FormFile;

public class myupload extends Action {

public ActionForward execute(ActionMapping actionMapping,

ActionForm actionForm,

HttpServletRequest request,

HttpServletResponse response) throws

FileNotFoundException, IOException {

FileInfo fileInfo = (FileInfo) actionForm;

//获取上传文件

FormFile f=fileInfo.getThisFile();

InputStream is=f.getInputStream();

//将文件存入服务器上

String filename=request.getSession().getServletContext().getRealPath("/shangchuan/"+f.getFileName());

OutputStream os=new FileOutputStream(filename);

int x=0;

//优化流处理过程

byte[] buffer = new byte[8192];

while((x=is.read(buffer, 0, 8192))!=-1)

{

os.write(buffer,0,x);

}

os.close();

response.sendRedirect("jsp1.jsp");//根据实际情况跳转

return null;

}

}

java附件上传功能,上传的附件要根据时间来重命名,上传的路径保存在服务器指定目录根据年月来分的目录里

如果使用框架的话,比如 struts ,就比较简单了

获取上传的时间:

Calendar cal = Calendar.getInstance();

String year = String.valueOf(cal.get(Calendar.YEAR));

String month = String.valueOf(cal.get(Calendar.MONTH));

获取路径:

String path = ServletActionContext.getServletContext().getRealPath("/"+year+"/"+month);

直接保存在 path 这个目录里面就可以

如果没有使用 框架,可以使用 FileUpload 这个 jar 包来上传文件

java 上传附件实现方法

第一,jsp上传页面内容:

%@ page contentType="text/html; charset=GBK" %

%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %

html

head

title

jsp1

/title

/head

body bgcolor="#ffffff"

html:form action="myupload.do" method="post" enctype="multipart/form-data"

html:file property="thisFile"/br

html:file property="thisFile"/br

html:submit/

/html:form

/body

/html

第二,一个javabean

package upload;

import org.apache.struts.action.ActionForm;

import org.apache.struts.upload.FormFile;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;

public class FileInfo extends ActionForm {

private FormFile thisFile;

public FormFile getThisFile() {

return thisFile;

}

public void setThisFile(FormFile thisFile) {

this.thisFile = thisFile;

}

public ActionErrors validate(ActionMapping actionMapping,

HttpServletRequest httpServletRequest) {

/** @todo: finish this method, this is just the skeleton.*/

return null;

}

public void reset(ActionMapping actionMapping,

HttpServletRequest servletRequest) {

}

}

第三,一个action

package upload;

import java.io.*;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionForm;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.Action;

import org.apache.struts.upload.FormFile;

public class myupload extends Action {

public ActionForward execute(ActionMapping actionMapping,

ActionForm actionForm,

HttpServletRequest request,

HttpServletResponse response) throws

FileNotFoundException, IOException {

FileInfo fileInfo = (FileInfo) actionForm;

//获取上传文件

FormFile f=fileInfo.getThisFile();

InputStream is=f.getInputStream();

//将文件存入服务器上

String filename=request.getSession().getServletContext().getRealPath("/shangchuan/"+f.getFileName());

OutputStream os=new FileOutputStream(filename);

int x=0;

//优化流处理过程

byte[] buffer = new byte[8192];

while((x=is.read(buffer, 0, 8192))!=-1)

{

os.write(buffer,0,x);

}

os.close();

response.sendRedirect("jsp1.jsp");//根据实际情况跳转

return null;

}

}