บทความนี้อธิบายการอัปโหลดไฟล์และดาวน์โหลดคลาสเครื่องมือที่ใช้โดย Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
นี่คือคลาสเครื่องมือที่ใช้ภาษา Java เพื่ออัปโหลดและดาวน์โหลดไฟล์ในสภาพแวดล้อม Eclipse เช่นเดียวกับคลาส C# อัปโหลดและดาวน์โหลดคลาสเครื่องมือที่แนะนำมาก่อนเพื่อหลีกเลี่ยงการทำซ้ำชื่อไฟล์ในเซิร์ฟเวอร์ชื่อไฟล์บนเซิร์ฟเวอร์จะใช้ในรูปแบบของ "เวลาเซิร์ฟเวอร์ (กำหนดเป็นมิลลิวินาที) + ชื่อไฟล์ + ไฟล์เสริมไฟล์"; ในระหว่างกระบวนการดาวน์โหลด Spring MVC ResponseEntity ใช้สำหรับการดาวน์โหลดไฟล์ซึ่งส่งคืนสตรีมไบต์ หลังจากการดาวน์โหลดสำเร็จพา ธ การบันทึกของไฟล์สามารถปรับแต่งได้
ซอร์สโค้ดเฉพาะมีดังนี้:
แพ็คเกจ com.utils; นำเข้า java.io.file; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า java.io.unsupportencodexception; นำเข้า java.text.simpledateformat org.springframework.http.httpheaders; นำเข้า org.springframework.http.httpstatus; นำเข้า org.springframework.http.mediatype; นำเข้า org.springframework.http.responsetity /*** กำหนดไดเรกทอรีตามเส้นทาง หากไม่มีไดเรกทอรีให้สร้างไดเรกทอรี * * @param Path */ โมฆะคงที่ส่วนตัว createDir (พา ธ สตริง) {ไฟล์ filedir = ไฟล์ใหม่ (พา ธ ); if (! filedir.exists () &&! filedir.isdirectory ()) {// กำหนดว่าไดเรกทอรี/ดาวน์โหลดมี filedir.mkdir (); // สร้างไดเรกทอรี}}/*** แยกชื่อไฟล์ลงในเส้นทางการอัปโหลดของไฟล์** @param @ createDir (เส้นทาง); วันที่วันที่ = วันที่ใหม่ (); SimpledateFormat dateformat = ใหม่ SimpledateFormat ("yyyymmddhhmmssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss สตริง filenamestr = filename.substring (0, filename.lastindexof (".")); // ลบชื่อไฟล์ของคำต่อท้ายคำต่อท้าย = filename.substring (filename.lastindexof (".") + 1); ไฟล์ไม่มี path + = "//" + filenamestr + nowstr + " + คำต่อท้าย; // กำหนดเส้นทางการอัปโหลด} เส้นทางส่งคืน; }/ ** * เตือนการดาวน์โหลดไฟล์ * * @param filename * @param path * @return */ public Static ResponseEntity <byte []> downloadfile (ชื่อไฟล์สตริง, เส้นทางสตริง) {ลอง {filename = สตริงใหม่ (filename.getByTes ("GB2312") (unsupportencodingexception e1) {e1.printstacktrace (); } ไฟล์ไฟล์ = ไฟล์ใหม่ (พา ธ ); ส่วนหัว httpheaders = httpheaders ใหม่ (); Headers.setContentType (MediaType.Application_octet_stream); Headers.SetContentDispositionFormData ("เอกสารแนบ", ชื่อไฟล์); ResponseEntity <byte []> bytearr = null; ลอง {bytearr = new responseEntity <byte []> (fileutils.readfileTobyteArray (ไฟล์), ส่วนหัว, httpstatus.ok); } catch (ioexception e) {e.printstacktrace (); } return bytearr; } / ** * เขียนข้อมูลจากสตรีมอินพุตไปยังอาร์เรย์ไบต์ * * @param ใน * @return * / ไบต์คงที่สาธารณะ [] inputStream2ByTeArray (inputStream in, boolean isClose) {byte [] byteArray = null; ลอง {int total = in.available (); ByteArray = ไบต์ใหม่ [ทั้งหมด]; in.read (bytearray); } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ถ้า (isClose) {ลอง {in.close (); } catch (Exception e2) {system.out.println ("ปิดการปั่นป่วนล้มเหลว"); }}} return bytearray; -สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "บทสรุปของไฟล์ Java และทักษะการใช้งานไดเรกทอรี", "การสอนเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึมของ Java", "บทสรุปของทักษะการดำเนินงาน Java Dom Node"
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน