当前位置: 技术问答>在JSP代码中怎么引用javascript中的变量???急!!!
iis7站长之家
jsp如何上传文件,请给代码,解决立即给分(在线)
来源: 互联网 发布时间:2015-04-11
本文导语: jsp如何上传文件,请给代码,解决立即给分(在线) | package pdm; import java.io.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.ServletInputStream; import javax.servlet.ServletException; public class...
jsp如何上传文件,请给代码,解决立即给分(在线)
|
package pdm;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletException;
public class Upload {
private static String newline = "n";
private String uploadDirectory = ".";
private String ContentType = "";
private String CharacterEncoding = "";
private String target_file_name=null;
private String filename="";
// private long file_size=0;
/**
* Upload 构造子注释。
*/
public Upload() {
super();
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:28:45)
*/
private String getFileName(String s){
int i = s.lastIndexOf("\");
if(i = s.length() - 1){
i = s.lastIndexOf("/");
if(i = s.length() - 1)
return s;
}
return s.substring(i + 1);
}
public String getUploadFileName(){ return filename;}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
private String readLine(byte Linebyte[], int ai[],ServletInputStream servletinputstream,String CharacterEncoding){
try{
//readLine(byte[] buffer, int offset, int length)
//Reads a line from the POST data.
ai[0] = servletinputstream.readLine(Linebyte, 0, Linebyte.length);
if(ai[0] == -1)
return null;
}catch(IOException _ex){
return null;
}
try{
if(CharacterEncoding == null){
//用缺省的编码方式把给定的byte数组转换为字符串
//String(byte[] bytes, int offset, int length)
return new String(Linebyte, 0, ai[0]);
}else{
//用给定的编码方式把给定的byte数组转换为字符串
//String(byte[] bytes, int offset, int length, String enc)
return new String(Linebyte, 0, ai[0], CharacterEncoding);
}
}catch(Exception _ex){
return null;
}
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
public void setCharacterEncoding(String s){
CharacterEncoding = s;
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:37)
*/
public void setContentType(String s){
ContentType = s;
int j;
if((j = ContentType.indexOf("boundary=")) != -1){
ContentType = ContentType.substring(j + 9);
ContentType = "--" + ContentType;
}
}
public void setTargetName(String n){ target_file_name = n; }
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:37)
*/
public void setUploadDirectory(String s){
uploadDirectory = s;
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
public void uploadFile( HttpServletRequest req) throws ServletException, IOException{
setCharacterEncoding(req.getCharacterEncoding());
setContentType(req.getContentType());
uploadFile(req.getInputStream());
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
public void uploadFile( ServletInputStream servletinputstream) throws ServletException, IOException{
String s5 = null;
//String filename = null;
byte Linebyte[] = new byte[4096];
byte outLinebyte[] = new byte[4096];
int ai[] = new int[1];
int ai1[] = new int[1];
String line;
//得到文件名
while((line = readLine(Linebyte, ai, servletinputstream, CharacterEncoding)) != null){
int i = line.indexOf("filename=");
if(i >= 0){
line = line.substring(i + 10);
if((i = line.indexOf(""")) > 0)
line = line.substring(0, i);
break;
}
}
filename = line;
if(filename != null && !filename.equals(""")){
filename = getFileName(filename);
String sContentType = readLine(Linebyte, ai, servletinputstream, CharacterEncoding);
if(sContentType.indexOf("Content-Type") >= 0)
readLine(Linebyte, ai, servletinputstream, CharacterEncoding);
//File(String parent, String child)
//Creates a new File instance from a parent pathname string
//and a child pathname string.
File file;
if(target_file_name !=null) file= new File(uploadDirectory, target_file_name);
else file = new File(uploadDirectory,filename);
//FileOutputStream(File file)
//Creates a file output stream to write to the file represented
//by the specified File object.
FileOutputStream fileoutputstream = new FileOutputStream(file);
while((sContentType = readLine(Linebyte, ai, servletinputstream, CharacterEncoding)) != null){
if(sContentType.indexOf(ContentType) == 0 && Linebyte[0] == 45)
break;
if(s5 != null){
//write(byte[] b, int off, int len)
//Writes len bytes from the specified byte array starting
//at offset off to this file output stream.
fileoutputstream.write(outLinebyte, 0, ai1[0]);
fileoutputstream.flush();
}
s5 = readLine(outLinebyte, ai1, servletinputstream, CharacterEncoding);
if(s5 == null || s5.indexOf(ContentType) == 0 && outLinebyte[0] == 45)
break;
fileoutputstream.write(Linebyte, 0, ai[0]);
fileoutputstream.flush();
}
byte byte0;
if(newline.length() == 1) byte0 = 2;
else byte0 = 1;
if(s5 != null && outLinebyte[0] != 45 && ai1[0] > newline.length() * byte0)
fileoutputstream.write(outLinebyte, 0, ai1[0] - newline.length() * byte0);
if(sContentType != null && Linebyte[0] != 45 && ai[0] > newline.length() * byte0)
fileoutputstream.write(Linebyte, 0, ai[0] - newline.length() * byte0);
fileoutputstream.close();
}
}
}
/*********************上传文件的bean****************/
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletException;
public class Upload {
private static String newline = "n";
private String uploadDirectory = ".";
private String ContentType = "";
private String CharacterEncoding = "";
private String target_file_name=null;
private String filename="";
// private long file_size=0;
/**
* Upload 构造子注释。
*/
public Upload() {
super();
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:28:45)
*/
private String getFileName(String s){
int i = s.lastIndexOf("\");
if(i = s.length() - 1){
i = s.lastIndexOf("/");
if(i = s.length() - 1)
return s;
}
return s.substring(i + 1);
}
public String getUploadFileName(){ return filename;}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
private String readLine(byte Linebyte[], int ai[],ServletInputStream servletinputstream,String CharacterEncoding){
try{
//readLine(byte[] buffer, int offset, int length)
//Reads a line from the POST data.
ai[0] = servletinputstream.readLine(Linebyte, 0, Linebyte.length);
if(ai[0] == -1)
return null;
}catch(IOException _ex){
return null;
}
try{
if(CharacterEncoding == null){
//用缺省的编码方式把给定的byte数组转换为字符串
//String(byte[] bytes, int offset, int length)
return new String(Linebyte, 0, ai[0]);
}else{
//用给定的编码方式把给定的byte数组转换为字符串
//String(byte[] bytes, int offset, int length, String enc)
return new String(Linebyte, 0, ai[0], CharacterEncoding);
}
}catch(Exception _ex){
return null;
}
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
public void setCharacterEncoding(String s){
CharacterEncoding = s;
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:37)
*/
public void setContentType(String s){
ContentType = s;
int j;
if((j = ContentType.indexOf("boundary=")) != -1){
ContentType = ContentType.substring(j + 9);
ContentType = "--" + ContentType;
}
}
public void setTargetName(String n){ target_file_name = n; }
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:37)
*/
public void setUploadDirectory(String s){
uploadDirectory = s;
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
public void uploadFile( HttpServletRequest req) throws ServletException, IOException{
setCharacterEncoding(req.getCharacterEncoding());
setContentType(req.getContentType());
uploadFile(req.getInputStream());
}
/**
* 在这里插入方法说明。
* 建立日期:(01-1-9 16:29:47)
*/
public void uploadFile( ServletInputStream servletinputstream) throws ServletException, IOException{
String s5 = null;
//String filename = null;
byte Linebyte[] = new byte[4096];
byte outLinebyte[] = new byte[4096];
int ai[] = new int[1];
int ai1[] = new int[1];
String line;
//得到文件名
while((line = readLine(Linebyte, ai, servletinputstream, CharacterEncoding)) != null){
int i = line.indexOf("filename=");
if(i >= 0){
line = line.substring(i + 10);
if((i = line.indexOf(""")) > 0)
line = line.substring(0, i);
break;
}
}
filename = line;
if(filename != null && !filename.equals(""")){
filename = getFileName(filename);
String sContentType = readLine(Linebyte, ai, servletinputstream, CharacterEncoding);
if(sContentType.indexOf("Content-Type") >= 0)
readLine(Linebyte, ai, servletinputstream, CharacterEncoding);
//File(String parent, String child)
//Creates a new File instance from a parent pathname string
//and a child pathname string.
File file;
if(target_file_name !=null) file= new File(uploadDirectory, target_file_name);
else file = new File(uploadDirectory,filename);
//FileOutputStream(File file)
//Creates a file output stream to write to the file represented
//by the specified File object.
FileOutputStream fileoutputstream = new FileOutputStream(file);
while((sContentType = readLine(Linebyte, ai, servletinputstream, CharacterEncoding)) != null){
if(sContentType.indexOf(ContentType) == 0 && Linebyte[0] == 45)
break;
if(s5 != null){
//write(byte[] b, int off, int len)
//Writes len bytes from the specified byte array starting
//at offset off to this file output stream.
fileoutputstream.write(outLinebyte, 0, ai1[0]);
fileoutputstream.flush();
}
s5 = readLine(outLinebyte, ai1, servletinputstream, CharacterEncoding);
if(s5 == null || s5.indexOf(ContentType) == 0 && outLinebyte[0] == 45)
break;
fileoutputstream.write(Linebyte, 0, ai[0]);
fileoutputstream.flush();
}
byte byte0;
if(newline.length() == 1) byte0 = 2;
else byte0 = 1;
if(s5 != null && outLinebyte[0] != 45 && ai1[0] > newline.length() * byte0)
fileoutputstream.write(outLinebyte, 0, ai1[0] - newline.length() * byte0);
if(sContentType != null && Linebyte[0] != 45 && ai[0] > newline.length() * byte0)
fileoutputstream.write(Linebyte, 0, ai[0] - newline.length() * byte0);
fileoutputstream.close();
}
}
}
/*********************上传文件的bean****************/