Java 實現上傳檔案服務端程式碼(一)
服務端:通過Servlet + fileupload 等實現
jar:commons-fileupload-1.3.1.jar,commons-io-2.4.jar
客戶端上傳見:Java 上傳檔案客戶端程式碼(二)
package com.http.servlet; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class HttpServletUpload extends HttpServlet { /** * Constructor of the object. */ public HttpServletUpload() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); PrintWriter out = null; response.setContentType("text/html;charset=UTF-8"); //利用apache的common-upload上傳元件來進行 來解析獲取到的流檔案 //把上傳來的檔案放在這裡 String uploadPath = getServletContext().getRealPath("/upload");//獲取檔案路徑 //檢測是不是存在上傳檔案 // Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartContent(request); if(isMultipart){ DiskFileItemFactory factory = new DiskFileItemFactory(); //指定在記憶體中快取資料大小,單位為byte,這裡設為1Mb factory.setSizeThreshold(1024*1024); //設定一旦檔案大小超過getSizeThreshold()的值時資料存放在硬碟的目錄 factory.setRepository(new File("D://temp")); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // 指定單個上傳檔案的最大尺寸,單位:位元組,這裡設為5Mb upload.setFileSizeMax(5 * 1024 * 1024); //指定一次上傳多個檔案的總尺寸,單位:位元組,這裡設為10Mb upload.setSizeMax(10 * 1024 * 1024); upload.setHeaderEncoding("UTF-8"); //設定編碼,因為我的jsp頁面的編碼是utf-8的 List<FileItem> items = null; try { // 解析request請求 items = upload.parseRequest(request); } catch (FileUploadException e) { e.printStackTrace(); } if(items!=null){ //把上傳檔案放到伺服器的這個目錄下 if (!new File(uploadPath).isDirectory()){ new File(uploadPath).mkdirs(); //選定上傳的目錄此處為當前目錄,沒有則建立 } //解析表單專案 // Process the uploaded items Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); //如果是普通表單屬性 if (item.isFormField()) { //<input type="text" name="content"> String name = item.getFieldName();//相當於input的name屬性 String value = item.getString();//input的value屬性 System.out.println("屬性:"+name+" 屬性值:"+value); } //如果是上傳檔案 else { //屬性名 String fieldName = item.getFieldName(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); //上傳檔案路徑 String fileName = item.getName(); fileName = fileName.substring(fileName.lastIndexOf("/")+1);// 獲得上傳檔案的檔名 fileName = sdf.format(new Date()) + ".jpg"; try { item.write(new File(uploadPath,fileName)); } catch (Exception e) { e.printStackTrace(); } //給請求頁面返回響應 response.getWriter().println("檔案上傳成功! 檔名是:"+fileName); } } } } try { out = response.getWriter(); out.print("{success:true, msg:'接收成功'}"); out.close(); } catch (IOException e) { e.printStackTrace(); } } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
相關推薦
Java 實現上傳檔案服務端程式碼(一)
服務端:通過Servlet + fileupload 等實現 jar:commons-fileupload-1.3.1.jar,commons-io-2.4.jar 客戶端上傳見:Java 上傳檔案客戶端程式碼(二) package com.http.servlet;
hadoop生態系統學習之路(三)java實現上傳檔案(本地或ftp)至hdfs
在上一篇博文中,我們講了如何編寫、執行、測試一個MR,但是hdfs上的檔案是手動執行命令從本地linux上傳至hdfs的。在真實的執行環境中,我們不可能每次手動執行命令上傳的,這樣太過繁瑣。那麼,我們可以使用hdfs提供的java api實現檔案上傳至hdfs,
Windows 的java客戶端實現上傳檔案到Linux的Hadoop叢集上(注意ip和埠是否一致)
我這幾天一直在學大資料,處於入門階段,然後老師的視訊中教學有用windows的java客戶端上傳檔案到Linux的Hadoop叢集, 但是這邊出BUG了一直上傳不上去,執行程式後一直沒反應。。。。弄了幾天(雖然這幾天在做前端專案~~~) 然後問群裡的大佬,他們說應該是ip和埠
java servlet實現上傳檔案程式碼及其原理說明
我們做檔案上傳是不是都是使用第三方外掛,雖然知道原理,但想知道是怎麼實現的吧?一起來看看 上傳解析的實現簡單說一下: 通過ServletRequest類的getInputStream()方法獲得一個客戶端向伺服器發出的資料流、分析上傳的檔案格式,根據分析結果將
win2008 r2 搭建FTP服務實現上傳檔案
如何使用FTP傳輸檔案到伺服器 Win10開啟FTP與配置(完整無錯版) 一、控制面板》程式》開啟或關閉windows功能 二、安裝IIS服務 三、開始》管理工具》計算機管理
基於springMVC+AJAX+bootstraptable實現上傳檔案和客戶端分頁
1 首先看一下上傳表格程式碼,主要程式碼如下: <form method="post" enctype="multipart/form-data" id="orderform"> <div class="col-md-6 col-sm-12"&
檔案上傳 04 服務端檢測繞過(副檔名檢測)
本文記錄檔案上傳學習過程,教程為 《Upload Attack Framework V1.0》 檔案上傳檢測 客戶端javascript 檢測(通常為檢測副檔名) 服務端MIME 型別
檔案上傳 02 服務端檢測繞過(MIME型別檢測)
本文記錄檔案上傳學習過程,教程為 《Upload Attack Framework V1.0》 檔案上傳檢測 客戶端javascript 檢測(通常為檢測副檔名) 服務端MIME 型別
HttpURLConnection實現java後臺上傳檔案和其他引數
最近在對接某第三方視訊服務商的介面,使用java在後臺呼叫他們的介面。在對接設定封面時遇到一個問題,他們需要對個引數,且有一個引數的型別為file。苦尋半天,果。遂記錄如下。 import java.io.DataOutputStream; import j
JAVA上傳檔案至HDFS程式碼及對應jar包
最近需要將本地採集到的檔案上傳到遠端伺服器的HDFS檔案系統當中,弄了很久,找程式碼,找JAR包,很麻煩,記錄一下。 原始碼部分很簡單: import java.io.BufferedInput
VScode 中用sftp自動上傳和服務端自動重啟
創建 text .com interact 啟動 tar 似的 註釋 同步 sftp 安裝 sftp 工具 這裏我選擇的是名字是sftp的工具 在Visual Studio Code 中按Ctrl + Shift + P並輸入 >extensions install
java圖片上傳-檔案/圖片上傳到七牛
java圖片上傳-檔案(圖片)上傳到七牛 一、在配置檔案中引入依賴(注:七牛開發者url:https://developer.qiniu.com/kodo) <-- 引入依賴 --> <dependency> <
bbs專案富文字編輯器實現上傳檔案到media目錄
media目錄是在project的settings中設定的,static目錄是django自己使用的靜態檔案的上傳目錄,media目錄是使用者自定義上傳檔案的目錄 # Django使用者上傳的檔案都放在media目錄下 MEDIA_URL = "/media/" MEDIA_ROOT = os.pat
移動端網頁錄音上傳,服務端智慧語音識別
移動端網頁錄音上傳,服務端智慧語音識別 最近,看了創業時代的魔鏡,想法突如起來,能不能手機發送一條語音,語音上傳到後臺,自動識別語音的資訊,轉化為文字,將文字分析,然後回覆使用者豔學網的資源。 我們的資源以原始碼為主,一起編集豔學情緣。我們不僅分享原始碼 http://47.98.2
使用第三方元件實現上傳檔案
使用第三方元件實現上傳檔案功能需要在專案lib下目錄匯入兩個Jar包(commons-fileupload 和 commons-io) commons-io下載地址:http://commons.apache.org/proper/commons-io/download_i
tornado+vue實現上傳檔案
要用tornado+vue寫一個後臺管理系統,記錄一下遇到檔案上傳時候的步驟: 1.Form表單裡的程式碼:(這裡是使用的餓了麼表單元件) <el-form-item label="頭像"> <el-upload
微信小程式中實現上傳視訊的開發程式碼
index.wxml <view class="image-plus image-plus-nb" bindtap="chooseVideo"> <view class="image-plus-horizontal"></view> &l
java ftp上傳檔案 支援併發
package com.dl.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ja
java ftp上傳檔案 但是不支援併發
package com.dl.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ja
使用form表單同時實現上傳檔案和提交文字資料
使用form表單同時實現上傳檔案和提交文字資料,此示例中在後臺將檔案上傳到阿里的oss儲存伺服器中 申請oss相關賬號: endpoint = "http://oss-cn-qingdao.aliyuncs.com"; accessKeyId = "key"; accessKeySecret = "secr