Schreiben Sie den Datei-Upload mit JSP
Autor:Eve Cole
Aktualisierungszeit:2009-07-02 17:13:03
Wenn Sie jemals VB zum Schreiben einer Datei-Upload-Komponente verwendet haben, ist es sehr einfach, JAVA zum Schreiben von JAVABEAN für den Datei-Upload zu verwenden.
Das folgende Beispiel ist nur eine vereinfachte Version
packageyuanyifileup;
java.io.* importieren;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.PageContext;
Yuanyifileup der öffentlichen Klasse
{
private ServletRequest-Anfrage;
private ServletResponse-Antwort;
privateServletConfig-Konfiguration;
ServletInputStream DATA;
int FormSize;
Datei f1;
FileOutputStream os;
DataInputStream ist;
String-Dateiname;
byte[] b;
Byte t;
boolesches Flag=false;
öffentliches yuanyifileup()
{ }
public void initialize(ServletConfig config,HttpServletRequest request,HttpServletResponse Response) löst eine IOException aus
{
this.request=Anfrage;
this.response=Antwort;
this.config=config;
DATA = request.getInputStream();
FormSize=request.getContentLength();
}
public void initialize(PageContext pageContext) löst eine IOException aus
{
request=pageContext.getRequest();
Response=pageContext.getResponse();
config=pageContext.getServletConfig();
DATA = request.getInputStream();
FormSize=request.getContentLength();
}
public boolean setFilename(String s)
{
versuchen
{
Datei f1=neue Datei(en);
os=new FileOutputStream(f1);
}
Catch(IOException e)
{return(false);}
return(true);
}
public void getByte()
{
int i=0;
versuchen
{
is=new DataInputStream(DATA);
b=neues Byte[FormSize];
while(true)
{
versuchen
{
t=is.readByte();
b[i]=t;
i++;
}
Catch(EOFException e)
{ brechen;}
}
is.close();}
Catch(IOException e)
{}
}
öffentliches boolesches save()
{
int i=0,start1=0,start2=0;
String temp="";
if (!flag)
{
getByte();
flag=true;
}
versuchen
{
temp=new String(b,"ISO8859_1");
}
Catch(UnsupportedEncodingException e)
{return(false);}
start1=temp.indexOf("image/");
temp=temp.substring(start1);
start1=temp.indexOf("rnrn");
temp=temp.substring(start1+4);
start2=temp.indexOf(";rn");
if (start2!=-1)
{
temp=temp.substring(0,start2);
}
versuchen
{
byte[] img=temp.getBytes("ISO8859_1");
für (i=0;i<img.length;i++)
{ os.write(img[i] }
os.close();
}
Catch(IOException e)
{return(false);}
return(true);
}
Wenn Sie etwas nicht verstehen, senden Sie eine E-Mail an: [email protected]
}