當前位置:首頁 » 編程語言 » javaweb文件

javaweb文件

發布時間: 2023-06-11 12:02:30

java web 大文件上傳下載

直接把大文件讀取為IO流,之後進行上傳下載即可,不用擔心文件大,是可以分流下載上傳的(setBufferSize(1024))。
舉例:
import hkrt.b2b.view.util.Log;
import hkrt.b2b.view.util.ViewUtil;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

public class CCFCCBFTP {

/**
* 上傳文件
*
* @param fileName
* @param plainFilePath 明文文件路徑路徑
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上傳文件開始");
Log.info("連接遠程上傳伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("檢查文件路徑是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查詢文件路徑不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上傳文件成功:"+fileName+"。文件保存路徑:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}

}

/**
*下載文件
*
* @param localFilePath
* @param fileName
* @param routeFilepath
* @return
* @throws Exception
*/
public static String fileDownloadByFtp(String localFilePath, String fileName,String routeFilepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FileOutputStream fos = null;
FTPClient ftpClient = new FTPClient();
String SFP = System.getProperty("file.separator");
String bl = "false";
try {
Log.info("下載並解密文件開始");
Log.info("連接遠程下載伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
// ftpClient.connect(CMBCUtil.CMBCHOSTNAME, 2021);
// ftpClient.login(CMBCUtil.CMBCLOGINNAME, CMBCUtil.CMBCLOGINPASSWORD);
FTPFile[] fs;

ftpClient.makeDirectory(routeFilepath);
ftpClient.changeWorkingDirectory(routeFilepath);
bl = "false";
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
bl = "true";
Log.info("下載文件開始。");
ftpClient.setBufferSize(1024);
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
InputStream is = ftpClient.retrieveFileStream(fileName);
bos = new ByteArrayOutputStream(is.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
fos = new FileOutputStream(localFilePath+SFP+fileName);
fos.write(bos.toByteArray());
Log.info("下載文件結束:"+localFilePath);
}
}
Log.info("檢查文件是否存:"+fileName+" "+bl);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon("查詢無結果,請稍後再查詢。");
return bl;
}
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}}
備註:以上方法就實現了流的二進制上傳下載轉換,只需要將伺服器連接部分調整為本地的實際ftp服務用戶名和密碼即可。

❷ javaweb打包css文件部署在那裡

1.
在eclipse中右鍵單擊項目,然後Export選擇WAR file,生成項目的WAR文件。具體步驟請看圖片詳細操作步驟:
2.
把生成的WAR文件放到tomcat解壓之後的webapps文件夾下。
3.
在tomcat的conf文件夾里的server.xml進行配置: 在<Host></Host>標簽之間添加

❸ JAVA WEB文件上傳步驟

JAVA WEB文件上傳步驟如下:
實現 Web 開發中的文件上傳功能,兩個操作:在 Web 頁面添加上傳輸入項,在 Servlet 中讀取上傳文件的數據並保存在本地硬碟中。
1、Web 端上傳文件。在 Web 頁面中添加上傳輸入項:<input type="file"> 設置文件上傳輸入項時應注意:(1) 必須設置 input 輸入項的 name 屬性,否則瀏覽器將不會發送上傳文件的數據。(2) 必須把 form 的 enctype 屬性設為 multipart/form-data,設置該值後,瀏覽器在上傳文件時,將把文件數據附帶在 http 請求消息體中,並使用 MIME 協議對上傳文件進行描述,以方便接收方對上傳數據進行解析和處理。(3) 表單提交的方式要是 post
2、伺服器端獲取文件。如果提交表單的類型為 multipart/form-data 時,就不能採用傳統方式獲取數據。因為當表單類型為 multipart/form-data 時,瀏覽器會將數據以 MIME 協議的形式進行描述。如果想在伺服器端獲取數據,那麼我們必須採用獲取請求消息輸入流的方式來獲取數據。
3、Apache-Commons-fileupload。為了方便用戶處理上傳數據,Apache 提供了一個用來處理表單文件上傳的開源組建。使用 Commons-fileupload 需要 Commons-io 包的支持。
4、fileuplpad 組建工作流程
(1)客戶端將數據封裝在 request 對象中。
(2)伺服器端獲取到 request 對象。
(3)創建解析器工廠 DiskFileItemFactory 。
(4)創建解析器,將解析器工廠放入解析器構造函數中。之後解析器會對 request 進行解析。
(5)解析器會將每個表單項封裝為各自對應的 FileItem。
(6)判斷代表每個表單項的 FileItem 是否為普通表單項 isFormField,返回 true 為普通表單項。
(7)如果是普通表單項,通過 getFieldName 獲取表單項名,getString 獲得表單項值。
(8)如果 isFormField 返回 false 那麼是用戶要上傳的數據,可以通過 getInputStream 獲取上傳文件的數據。通過getName 可以獲取上傳的文件名。

❹ javaweb如何將文件保存到伺服器的指定目錄

可以把文件目錄配置在web.xml文件的初始化參數中, 通過ServletAPI讀取文件目錄

比如

定義一個Properties文件保存相關配置

#可以上傳文件的後綴名

extensions=pptx,docx.doc,txt,jpg,jar

#單個文件的大小1M

fileMaxSize=1048576

#總共上傳文件大小5M

totalFileMaxSize=5242880

#文件保存路徑

filePath=z:/temp

#臨時文件路徑

tempDir=z:/temp/temp


使用Listener在伺服器啟動時載入配置信息

ServletContextcontext=event.getServletContext();
InputStreaminputStream=context
.getResourceAsStream("/WEB-INF/classes/file/upload/commons/uploadConfig.properties");
Propertiesproperties=newProperties();
try{
properties.load(inputStream);
context.setAttribute("fileConfig",properties);
System.out.println("properties="+properties.size());
}catch(IOExceptione){
e.printStackTrace();
}


在你上傳文件時通過配置文件讀取路徑保存

String filePath = ((Properties) this.getServletContext().getAttribute("fileConfig"))

.getProperty(FileUploadConstants.FILE_PATH);

❺ java web文件上傳報錯

它說了嘛,DiskFileItemFactory不能強制類型轉換為FileItemFactory,你看你DiskFileItemFactory用的是Apache的fileupload包里的,FileItemFactory用的是Tomcat的fileupload包,就像是你new了一隻貓,然後強行把它賦值給了一條狗。(這個問題如果是在IDEA里它直接就會報錯)所以你要統一一下,要麼統一使用Apache的類,要麼用Tomcat的。(建議都用Apache的)

❻ Java web文件上傳怎麼限制文件類型

  1. 前端限制,用 正則匹配文件名後綴 /.([jJ][pP][gG]){1}$|.([jJ][pP][eE][gG]){1}$|.([gG][iI][fF]){1}$|.([pP][nN][gG]){1}$|.([bB][mM][pP]){1}$/ 這個是圖片正則匹配


  2. 服務端獲取文件,用正則匹配文件名後綴


  3. =(MultipartHttpServletRequest)request;
    MultipartFilefile=mrequest.getFile("file");
    if(file!=null&&!file.isEmpty()){
    //獲得文件類型(可以判斷如果不是指定類型,禁止上傳)
    StringcontentType=file.getContentType();

❼ Javaweb項目中頁面展示是用什麼文件

使用jsp和html展示內容以及和後端交互。
html是靜態頁面,jsp是動態頁面,日常開發中,這兩種都是結合使用的。
JSP全名為JavaServerPages,中文名叫java伺服器頁面,其根本是一個簡化的設計,它 是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准。JSP技術有點類似ASP技術,它是在傳統的網頁HTML標准通用標記語言的子集文件*.htm,*.html中插入Java程序段Scriptlet和JSP標記tag,從而形成JSP文件,後綴名為(*.jsp),用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他操作系統上運行。

熱點內容
大眾空調登錄密碼多少 發布:2025-02-13 16:16:08 瀏覽:33
等差數列求和c語言 發布:2025-02-13 16:10:05 瀏覽:714
安卓手機如何無密碼解鎖vivo 發布:2025-02-13 15:52:10 瀏覽:885
電信50m上傳 發布:2025-02-13 15:47:56 瀏覽:364
清理outlook2010緩存 發布:2025-02-13 15:43:30 瀏覽:55
ohem演算法 發布:2025-02-13 15:40:10 瀏覽:931
java編程課程 發布:2025-02-13 15:36:08 瀏覽:476
cs編譯 發布:2025-02-13 15:36:07 瀏覽:56
高級語言都要編譯解析型語言 發布:2025-02-13 15:06:32 瀏覽:305
openwrt源碼下載 發布:2025-02-13 15:01:59 瀏覽:645