Es gibt viele Möglichkeiten, Dateien in Java hochzuladen. Die einfachsten sind immer noch FileInputStream und FileOutputStream. Hier liste ich drei gängige Datei-Upload-Methodencodes auf
Zunächst erfordert die Verwendung der nativen Datei-Upload-Methode von springMVC einige einfache Konfigurationen, wie im Bild oben gezeigt. (Empfohlenes Lernen: Java-Kurs)
1 Verwenden Sie die von Spring bereitgestellte Methode zum Hochladen von Dateien
@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 . Verwenden Sie file.Transto, um hochgeladene Dateien zu speichern. Dies ist meiner Meinung nach derzeit die beste Upload-Methode. Der Code ist einfach und schnell. Bitte sehen Sie sich den Code unten an.
/* * 采用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. Die dritte Methode ist das Hochladen per Stream. Diese Methode wird oft von Anfängern beim Lernen verwendet, aber ich mag sie nicht, weil sie langsam und schwierig zu schreiben ist. Bitte sehen Sie sich
@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"; }
Einfache Datei-Upload-Seite
anDas obige ist der detaillierte Inhalt vonSo laden Sie Dateien in Java hoch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!