jspを使用してファイルアップロードを書き込みます
著者:Eve Cole
更新時間:2009-07-02 17:12:50
VB を使用してファイル アップロード コンポーネントを作成したことがあれば、JAVA を使用してファイル アップロード用の JAVABEAN を作成するのは非常に簡単です。
以下の例は単なる簡略化されたバージョンです
パッケージyuanyifileup;
java.io.* をインポートします。
java.util.* をインポートします。
javax.servlet.* をインポートします。
インポート javax.servlet.http.*;
インポート javax.servlet.jsp.PageContext;
パブリッククラスyunyifileup
{
プライベート ServletRequest リクエスト。
プライベート ServletResponse 応答。
privateServletConfig 構成。
サーブレット入力ストリーム データ;
int FormSize;
ファイル f1;
ファイル出力ストリーム OS;
DataInputStream は;
文字列ファイル名。
バイト[] b;
バイト t;
ブール値フラグ = false;
パブリックyuanyifileup()
{ }
public voidInitialize(ServletConfig config,HttpServletRequest request,HttpServletResponse 応答) が IOException をスローする
{
this.request=リクエスト;
this.response=応答;
this.config=構成;
DATA = request.getInputStream();
FormSize=request.getContentLength();
}
public voidInitialize(PageContext pageContext) は IOException をスローします
{
request=pageContext.getRequest();
応答=pageContext.getResponse();
config=pageContext.getServletConfig();
DATA = request.getInputStream();
FormSize=request.getContentLength();
}
public boolean setFilename(String s)
{
試す
{
ファイル f1=新しいファイル;
os=新しいファイル出力ストリーム(f1);
}
catch(IOException e)
{戻り値(偽);}
戻り値(true);
}
public void getByte()
{
int i=0;
試す
{
is=新しいデータ入力ストリーム(DATA);
b=新しいバイト[フォームサイズ];
その間(真)
{
試す
{
t=is.readByte();
b[i]=t;
i++;
}
catch(EOFException e)
{ 壊す;}
}
is.close();}
catch(IOException e)
{}
}
public boolean save()
{
int i=0,start1=0,start2=0;
文字列 temp="";
if (!フラグ)
{
getByte();
フラグ = true;
}
試す
{
temp=新しい文字列(b,"ISO8859_1");
}
catch(UnsupportedEncodingException e)
{戻り値(偽);}
start1=temp.indexOf("画像/");
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);
}
試す
{
byte[] img=temp.getBytes("ISO8859_1");
for (i=0;i<img.length;i++)
{ os.write(img[i]) }
os.close();
}
catch(IOException e)
{戻り値(偽);}
戻り値(true);
}
ご不明な点がございましたら、[email protected] までメールをお送りください。
}