写真やファイルをアップロードするJava

:への転載http://www.xdx97.com/#/single?bid=8b351a73-922c-eadc-512e-9e248a3efde9

ポスト道、背景と保存とフォー​​ムによってフロントエンド送信フォーム。より多くのコメントや他の機能にのみアップロードファイルを保持、ここでは省略されている、私は最初の研究を読んでお勧めします。

フロント:

<!DOCTYPE HTML > 
< HTML > 
< ヘッド> 
< メタ= "コンテンツタイプ" コンテンツ= "text / htmlの;のcharset = UTF-8" > 
< タイトル>发布商品</ タイトル> 
</ ヘッド> 
< 身体> 
    < フォームアクション= "../ COM / YH /がmyservlet / AddGoodsServlet" 
        のenctype = "multipart / form-data"に方法= "POST" > 
        上传文件:<>  < BR /> 
        < 入力タイプ= "提出" = "提交" > 
    </ 構成> 
</ ボディ> 
</ HTML >

 

リア:

パッケージcom.yh.myServlet; 

インポートのjava.io.File;
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException;
輸入java.io.InputStreamを。
輸入はjava.util.List;
輸入java.util.UUID。

輸入javax.servlet.ServletException;
輸入javax.servlet.http.HttpServlet。
インポートのjavax.servlet.http.HttpServletRequest;
インポートのjavax.servlet.http.HttpServletResponse; 

輸入org.apache.commons.fileupload.FileItem;
輸入org.apache.commons.fileupload.disk.DiskFileItemFactory;
インポートorg.apache.commons.fileupload.servlet.ServletFileUpload; 

パブリック クラス AddGoodsServletは延びHttpServletを{ 

    / ** 
     * 
     * / 
    プライベート 静的 最終 長いのserialVersionUID = 1L 

    @Overrideは、
    保護された ボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)が
             スローServletExceptionがは、IOException {
         // TODO自動生成方法スタブ
    } 

    @Overrideが
    保護 ボイドdoPostメソッド(HttpServletRequestのリクエスト、HttpServletResponseの応答)を
             スローServletExceptionがは、IOException {
         // TODO自動生成方法スタブ 
        response.setContentType( "テキスト/ HTML;のcharset = UTF-8" )。

        文字列関数savepath = この .getServletContext()getRealPath( "/ WEB-INF /アップロード"。 )。
        関数savepath = savePath.replace( "\\"、 "\\\\" )。
        ファイルファイル = 新しいファイル(関数savepath)。
        もし(!file.exists()){ 
            file.mkdir(); 
        } 
        でのInputStream = NULL ; 
        FileOutputStreamアウト = nullを試します{ 
            DiskFileItemFactory工場 = 新しいDiskFileItemFactory()。
            ServletFileUploadアップロード = 新しいServletFileUpload(工場)。
            upload.setHeaderEncoding( "UTF-8" ); 

            一覧 <FileItem>リスト= upload.parseRequest(リクエスト)。
            (FileItem項目:リスト){ 
                文字列のファイル名 = item.getName()。
                もし(ファイル名== NULL。|| filename.trim()に等しい( "" )){
                     続けます
                }
                ファイル名 = filename.substring(filename.lastIndexOf()+ 1 "" ); 
                ファイル名 = UUID.randomUUID()。のtoString()+ "" + ファイル名; 
                アウト = 新しいのFileOutputStream(関数savepath + "\\" + ファイル名);
                バイト []バッファ= 新しい バイト [1024 ];
                int型のlen = 0 ;  = item.getInputStream()。
                一方、((LEN = in.read(バッファ))> 0 ){ 
                    out.write(バッファ、 0 、LEN)。
                }
                item.delete(); 
            }
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 最後に{ 
            in.close()。
            out.close(); 
        } 
    } 
}

 

おすすめ

転載: www.cnblogs.com/YeHuan/p/11265401.html