ホームページ > Java > &#&ベース > Javaでファイルをアップロードする方法

Javaでファイルをアップロードする方法

(*-*)浩
リリース: 2019-11-14 11:58:27
オリジナル
3515 人が閲覧しました

Javaでファイルをアップロードする方法

#Java でファイルをアップロードする方法はたくさんありますが、最も簡単なのは、やはり FileInputStream と FileOutputStream です。ここでは、3 つの一般的なファイル アップロード メソッド コードをリストします

まず第一に、springMVC ネイティブ ファイル アップロード メソッドを使用するには、いくつかの簡単な設定が必要ですが、上に示したように、特に言うことはありません。 (推奨学習:

java コース)

Javaでファイルをアップロードする方法1. spring

@RequestMapping("springUpload")
    public String  springUpload(HttpServletRequest request) throws IllegalStateException, IOException
    {
         long  startTime=System.currentTimeMillis();
         //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
        CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
                request.getSession().getServletContext());
        //检查form中是否有enctype="multipart/form-data"
        if(multipartResolver.isMultipart(request))
        {
            //将request变成多部分request
            MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
           //获取multiRequest 中所有的文件名
            Iterator iter=multiRequest.getFileNames();
            while(iter.hasNext())
            {
                //一次遍历所有文件
                MultipartFile file=multiRequest.getFile(iter.next().toString());
                if(file!=null)
                {
                    String path="E:/springUpload"+file.getOriginalFilename();
                    //上传
                    file.transferTo(new File(path));
                } 
            }
        }
        long  endTime=System.currentTimeMillis();
        System.out.println("Spring方法的运行时间:"+String.valueOf(endTime-startTime)+"ms");
        return "/success"; 
    }
ログイン後にコピー

2 が提供するファイルのアップロード方法を使用します。アップロードされたファイルを保存するには、file.Transto を使用します。これは、私の意見では、現時点で最良のアップロード方法であり、私のお気に入りのアップロード方法でもあります。コードはシンプルで、速度は高速です。以下のコードを参照してください。

/*
     * 采用file.Transto 来保存上传的文件
     */
    @RequestMapping("fileUpload2")
    public String  fileUpload2(@RequestParam("file") CommonsMultipartFile file) throws IOException {
         long  startTime=System.currentTimeMillis();
        System.out.println("fileName:"+file.getOriginalFilename());
        String path="E:/"+new Date().getTime()+file.getOriginalFilename();
          
        File newFile=new File(path);
        //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
        file.transferTo(newFile);
        long  endTime=System.currentTimeMillis();
        System.out.println("采用file.Transto的运行时间:"+String.valueOf(endTime-startTime)+"ms");
        return "/success"; 
    }
ログイン後にコピー

3. 3 番目の方法は、ストリームでアップロードする方法です。この方法は初心者が学習するときによく使用しますが、遅くて書きにくいため、私は好きではありません。

@RequestMapping("fileUpload")
    public String  fileUpload(@RequestParam("file") CommonsMultipartFile file) throws IOException {
          
        //用来检测程序运行时间
        long  startTime=System.currentTimeMillis();
        System.out.println("fileName:"+file.getOriginalFilename());
          
        try {
            //获取输出流
            OutputStream os=new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename());
            //获取输入流 CommonsMultipartFile 中可以直接得到文件的流
            InputStream is=file.getInputStream();
            byte[] bts = new byte[1024];
            //一个一个字节的读取并写入
            while(is.read(bts)!=-1)
            {
                os.write(bts);
            }
           os.flush();
           os.close();
           is.close();
          
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        long  endTime=System.currentTimeMillis();
        System.out.println("采用流上传的方式的运行时间:"+String.valueOf(endTime-startTime)+"ms");
        return "/success"; 
    }
ログイン後にコピー

簡易ファイルアップロードページ

Javaでファイルをアップロードする方法をご覧ください。

以上がJavaでファイルをアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート