Écrire le téléchargement de fichiers en utilisant jsp
Auteur:Eve Cole
Date de mise à jour:2009-07-02 17:12:50
Si vous avez déjà utilisé VB pour écrire un composant de téléchargement de fichiers, il est très simple d'utiliser JAVA pour écrire du JAVABEAN pour le téléchargement de fichiers.
L'exemple ci-dessous n'est qu'une version simplifiée
paquetyuanyifileup ;
importer java.io.* ;
importer java.util.* ;
importer javax.servlet.* ;
importer javax.servlet.http.* ;
importer javax.servlet.jsp.PageContext ;
classe publique yuanyifileup
{
requête ServletRequest privée ;
réponse privée ServletResponse ;
configuration privateServletConfig ;
ServletInputStream DATA ;
int TailleFormulaire ;
Fichier f1 ;
Système d'exploitation FileOutputStream ;
DataInputStream est ;
Nom de fichier de chaîne ;
octet[] b;
octet t ;
indicateur booléen = faux ;
public yuanyifileup()
{ }
public void initialize (configuration ServletConfig, requête HttpServletRequest, réponse HttpServletResponse) lève IOException
{
this.request=requête ;
this.response=réponse ;
this.config=config;
DONNEES = request.getInputStream();
FormSize=request.getContentLength();
}
public void initialize (PageContext pageContext) lance IOException
{
request=pageContext.getRequest();
réponse=pageContext.getResponse();
config=pageContext.getServletConfig();
DONNEES = request.getInputStream();
FormSize=request.getContentLength();
}
public booléen setFilename (String s)
{
essayer
{
Fichier f1 = nouveau(x) fichier(s) ;
os=nouveau FileOutputStream(f1);
}
capture (IOException e)
{retour(faux);}
revenir (vrai);
}
public vide getByte()
{
entier je = 0 ;
essayer
{
est=nouveau DataInputStream(DATA);
b=nouvel octet[FormSize];
tandis que (vrai)
{
essayer
{
t=is.readByte();
b[je]=t;
je++;
}
capture (EOFException e)
{ casser;}
}
est.close();}
capture (IOException e)
{}
}
sauvegarde booléenne publique ()
{
int je=0,début1=0,début2=0;
Chaîne temp="";
si (!drapeau)
{
getByte();
drapeau = vrai ;
}
essayer
{
temp=nouvelle chaîne(b,"ISO8859_1");
}
catch (UnsupportedEncodingException e)
{retour(faux);}
start1=temp.indexOf("image/");
temp=temp.substring(start1);
start1=temp.indexOf("rnrn");
temp=temp.substring(start1+4);
start2=temp.indexOf(";rn");
si (début2!=-1)
{
temp=temp.substring(0,start2);
}
essayer
{
octet[] img=temp.getBytes("ISO8859_1");
pour (i=0;i<img.length;i++)
{os.write(img[i]);
os.close();
}
capture (IOException e)
{retour(faux);}
revenir (vrai);
}
S'il y a quelque chose que vous ne comprenez pas, envoyez un e-mail à : [email protected]
}