當前位置:首頁 » 文件管理 » 文件上傳下載java

文件上傳下載java

發布時間: 2025-02-22 03:57:32

『壹』 用java的三大框架實現文件的上傳下載,求代碼啊,最好是分為action,service,serv

package cn.itcast.struts2.demo1;

import java.io.File;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

/**
* 完成文件上傳 (不是解析上傳內容,因為上傳內容 由fileUpload攔截器負責解析)
*
* @author seawind
*
*/
public class UploadAction extends ActionSupport {
// 接收上傳內容
// <input type="file" name="upload" />
private File upload; // 這里變數名 和 頁面表單元素 name 屬性一致
private String uploadContentType;
private String uploadFileName;

public void setUpload(File upload) {
this.upload = upload;
}

public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}

public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}

@Override
public String execute() throws Exception {
if (upload == null) { // 通過xml配置 required校驗器 完成校驗
// 沒有上傳文件
return NONE;
}
// 將上傳文件 保存到伺服器端
// 源文件 upload
// 目標文件
File destFile = new File(ServletActionContext.getServletContext()
.getRealPath("/upload") + "/" + uploadFileName);
// 文件復制 使用commons-io包 提供 工具類
FileUtils.File(upload, destFile);
return NONE;
}
}
多文件上傳
package cn.itcast.struts2.demo1;

import java.io.File;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

/**
* 支持多文件上傳
*
* @author seawind
*
*/
public class MultiUploadAction extends ActionSupport {
// 接收多文件上傳參數,提供數組接收就可以了
private File[] upload;
private String[] uploadContentType;
private String[] uploadFileName;

public void setUpload(File[] upload) {
this.upload = upload;
}

public void setUploadContentType(String[] uploadContentType) {
this.uploadContentType = uploadContentType;
}

public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}

@Override
public String execute() throws Exception {
for (int i = 0; i < upload.length; i++) {
// 循環完成上傳
File srcFile = upload[i];
String filename = uploadFileName[i];

// 定義目標文件
File destFile = new File(ServletActionContext.getServletContext()
.getRealPath("/upload" + "/" + filename));
FileUtils.File(srcFile, destFile);
}
return NONE;
}
}

『貳』 一文教你實現java中的文件上傳下載

在Java編程中,文件上傳下載功能是一項實用且常見的需求。本文將為你揭示如何實現這一功能,無論是為了工作中的項目需求,還是為了提高個人技能,這都是值得一學的技術點。


實現Java文件上傳下載的步驟


1. 理解需求:工作中的重復代碼問題促使作者記錄下文件上傳下載的解決方案,方便日後快速使用。


2. 技術概述:開始前,熟悉文件上傳下載的技術流程圖,有助於後續操作的順利進行。


3. 前端實現
- 前端HTML提供File組件,如拖拽或點擊選擇文件上傳。
- 使用JavaScript的drop事件處理文件拖拽。
- AJAX通過FormData上傳文件,如`formData.append('file', file);`


4. 後端介面:在Spring Boot中,通過`@RequestParam`接收上傳的文件,如`MultipartFile file`。


5. 持久化與審計:上傳的文件數據需要存儲資料庫,並記錄審計日誌。


6. 工具類技巧:分享一些關於IO流文件上傳的實用工具類。


7. 結束語:作者雖然忙碌,但承諾會分享更多有價值的內容,如面試寶典,以回饋讀者的支持。


8. 個人聲明:LRyab博客專注於積累經驗和技能分享,你的點贊是作者寫作的動力。

『叄』 Java實現SFTP上傳下載文件及遇到的問題

本文記錄了使用JSch實現SFTP上傳下載文件的工具類以及實際遇到的兩個問題的解決方法。

SFTP,即SSH文件傳輸協議,提供安全的文件傳輸服務,相較於FTP,安全性更高,但傳輸效率較低。JSch是一個純Java實現的SSH2庫,支持埠轉發、X11轉發等功能。

通過JSch實現SFTP工具類,該工具類提供文件上傳和下載功能。首先,在pom.xml文件中添加所需依賴。SFTP連接配置及文件上傳、下載請求的實現。

然而,在實際操作中遇到了兩個問題。在進行多個任務的文件上傳時,部分任務出現上傳失敗,報錯信息顯示為「Failure」。通過網路搜索和分析,問題可能在於創建了已存在的文件夾。在SFTP上傳文件路徑的設定上,不同任務的路徑不同,導致並發沖突。為解決此問題,將上傳路徑調整為bizType/{dataLabel}/{yyyyMMdd}/biz.txt,確保每個任務的文件路徑互不沖突。

在進行多個任務的文件下載時,部分任務出現下載失敗的情況,並報錯為超時。最初懷疑是並發問題導致,檢查後發現是超時時間設置過短。通過調整超時時間,問題得到解決。若調整超時時間仍無法解決,可嘗試設置為默認值。

本文通過實踐和問題解決,展示了在使用JSch實現SFTP上傳下載文件時遇到的兩個常見問題及對應的解決方法,有助於開發者在實際應用中避免類似問題。

『肆』 用java實現文件的上傳與下載

1.下載簡單,無非是把伺服器上的文件或者資料庫中的BLob(或其他二進制型),用流讀出來,然後寫到客戶端即可,要注意 ContentType。

2.上傳,可以用Apache Commons Upload等開源工具,或者自己寫:
form要用enctype="multipart/form-data"
然後伺服器端也是用IO把客戶端提交的文件流讀入,然後寫到伺服器的文件系統或者資料庫里。不同的資料庫對Lob欄位操作可能有所不同,建議用Hibernate,JPA等成熟的ORM框架,可以不考慮資料庫細節。

『伍』 怎樣使用javaweb實現上傳視頻和下載功能

文件上傳就是將客戶端資源,通過網路傳遞到伺服器端。

因為文件數據比較大,必須通過文件上傳才可以完成將數據保存到資料庫端的操作。

文件上傳的本質就是IO流操作。

演示:文件上傳應該如何操作?

瀏覽器端:
1.method=post 只有post才可以攜帶大數據
2.必須使用<input type='file' name='f'>要有name屬性
3.encType="multipart/form-data"
伺服器端:
request對象是用於獲取請求信息。
它有一個方法 getInputStream(); 可以獲取一個位元組輸入流,通過這個流,可以讀取到
所有的請求正文信息.
文件上傳原理:
瀏覽器端注意上述三件事,在伺服器端通過流將數據讀取到,在對數據進行解析.
將上傳文件內容得到,保存在伺服器端,就完成了文件上傳。

注意:在實際開發中,不需要我們進行數據解析,完成文件上傳。因為我們會使用文件上傳的工具,它們已經封裝好的,提供API,只要調用它們的API就可以完成文件上傳操作.我們使用的commons-fileupload,它是apache提供的一套開源免費的文件上傳工具。

代碼演示文件上傳的原理:

在WebRoot下新建upload1.jsp

[html]view plain

  • <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

  • <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

  • <html>

  • <head>

  • <title>MyJSP'index.jsp'startingpage</title>

  • </head>

  • <body>

  • <!--encType默認是application/x-www-form-urlencoded-->

  • <formaction="${pageContext.request.contextPath}/upload1"

  • method="POST"enctype="multipart/form-data">

  • <inputtype="text"name="content"><br>

  • <inputtype="file"name="f"><br><inputtype="submit"

  • value="上傳">

  • </form>

  • </body>

  • </html>

  • 新建Upload1Servlet 路徑:/upload1

    [java]view plain

  • packagecn.itcast.web.servlet;

  • importjava.io.IOException;

  • importjava.io.InputStream;

  • importjavax.servlet.ServletException;

  • importjavax.servlet.http.HttpServlet;

  • importjavax.servlet.http.HttpServletRequest;

  • importjavax.servlet.http.HttpServletResponse;

  • {

  • publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

  • throwsServletException,IOException{

  • //System.out.println("upload1servlet......");

  • //通過request獲取一個位元組輸入流,將所有的請求正文信息讀取到,列印到控制台

  • InputStreamis=request.getInputStream();

  • byte[]b=newbyte[1024];

  • intlen=-1;

  • while((len=is.read(b))!=-1){

  • System.out.println(newString(b,0,len));

  • }

  • is.close();

  • }

  • publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

  • throwsServletException,IOException{

  • doGet(request,response);

  • }

  • }

  • 在瀏覽器端訪問信息如下:


    文件上傳概述

    實現web開發中的文件上傳功能,需要完成如下二步操作:

  • 在web頁面中添加上傳輸入項。

  • 在Servlet中讀取上傳文件的數據,並保存在伺服器硬碟中。

  • 如何在web頁面中添加上傳輸入項?

    <input type="file">標簽用於在web頁面中添加文件上傳輸入項,設置文件上傳輸入項時注意:

  • 1、必須設置input輸入項的name屬性,否則瀏覽器將不會發送上傳文件的數據。

  • 2、必須把form的encType屬性設為multipart/form-data 設置該值後,瀏覽器在上傳文件時,並把文件數據附帶在http請求消息體內,並使用MIME協議對上傳的文件進行描述,以方便接收方對上傳數據進行解析和處理。

  • 3、表單的提交方式要設置為post。

  • 如何在Servlet中讀取文件上傳數據,並保存到本地硬碟中?

  • Request對象提供了一個getInputStream方法,通過這個方法可以讀取到客戶端提交過來的數據。但由於用戶可能會同時上傳多個文件,在servlet端編程直接讀取上傳數據,並分別解析出相應的文件數據是一項非常麻煩的工作,示例。

  • 為方便用戶處理文件上傳數據,Apache 開源組織提供了一個用來處理表單文件上傳的一個開源組件( Commons-fileupload ),該組件性能優異,並且其API使用極其簡單,可以讓開發人員輕松實現web文件上傳功能,因此在web開發中實現文件上傳功能,通常使用Commons-fileupload組件實現。

  • 使用Commons-fileupload組件實現文件上傳,需要導入該組件相應支撐jar包:Commons-fileupload和commons-io。commo-io不屬於文件上傳組件的開發jar文件,但Commons-fileupload組件從1.1版本開始,它工作時需要commons-io包的支持。

熱點內容
異星工廠伺服器怎麼一直在線 發布:2025-02-22 19:19:42 瀏覽:965
霸王大陸腳本 發布:2025-02-22 19:10:11 瀏覽:735
sql倉庫管理系統 發布:2025-02-22 19:04:38 瀏覽:99
rac使用文件系統存儲數據 發布:2025-02-22 19:04:25 瀏覽:419
有功功率演算法 發布:2025-02-22 19:02:39 瀏覽:496
ftp查找字元串 發布:2025-02-22 18:45:51 瀏覽:843
安卓手機如何打開keep文件 發布:2025-02-22 18:30:11 瀏覽:782
nga資料庫 發布:2025-02-22 18:26:01 瀏覽:155
密碼箱什麼品牌 發布:2025-02-22 18:24:23 瀏覽:482
雅閣音響密碼多少 發布:2025-02-22 18:23:21 瀏覽:651