當前位置:首頁 » 文件管理 » java表單文件上傳

java表單文件上傳

發布時間: 2022-09-21 09:20:40

java fileItem如何遍歷上傳普通表單域值到資料庫

//1.form表單
//註:上傳文件的表單,需要將form標簽設置enctype="multipart/form-data"屬性,意思是將Content-Type設置成multipart/form-data
<form action="xxx" method="post" enctype="multipart/form-data">
<input type="text" name="name" id="id1" /> <br />
<input type="password" name="password" /> <br />
<input type="file" name="file" value="選擇文件"/> <input id="submit_form" type="submit" value="提交"/>

❷ java上傳文件時用戶不提交表單,上傳的文件怎麼刪除

這個涉及到非同步文件上傳的功能設計。
思路:
1.
先把文件上傳道伺服器,並保存一條相關數據到資料庫中,狀態標識為-(未啟用)並設置過期時間,同時把文件上傳的url反饋給客戶端,實現回顯
2.
當用戶提交了表單之後,就把先前上傳的文件的狀態標識更新為
----已經生效
3.
如果用戶不提交表單,則文件到達了過期時間可以利用java程序去刪過期的文件(未生效

過期 )

❸ java中怎樣上傳文件

Java代碼實現文件上傳

FormFilefile=manform.getFile();
StringnewfileName=null;
Stringnewpathname=null;
StringfileAddre="/numUp";
try{
InputStreamstream=file.getInputStream();//把文件讀入
StringfilePath=request.getRealPath(fileAddre);//取系統當前路徑
Filefile1=newFile(filePath);//添加了自動創建目錄的功能
((File)file1).mkdir();
newfileName=System.currentTimeMillis()
+file.getFileName().substring(
file.getFileName().lastIndexOf('.'));
ByteArrayOutputStreambaos=newByteArrayOutputStream();
OutputStreambos=newFileOutputStream(filePath+"/"
+newfileName);
newpathname=filePath+"/"+newfileName;
System.out.println(newpathname);
//建立一個上傳文件的輸出流
System.out.println(filePath+"/"+file.getFileName());
intbytesRead=0;
byte[]buffer=newbyte[8192];
while((bytesRead=stream.read(buffer,0,8192))!=-1){
bos.write(buffer,0,bytesRead);//將文件寫入伺服器
}
bos.close();
stream.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}

❹ Java中上傳文件和表單數據提交如何質蕕

//1.form表單
//註:上傳文件的表單,需要將form標簽設置enctype="multipart/form-data"屬性,意思是將Content-Type設置成multipart/form-data
<form action="xxx" method="post" enctype="multipart/form-data">
<input type="text" name="name" id="id1" /> <br />
<input type="password" name="password" /> <br />
<input type="file" name="file" value="選擇文件"/> <input id="submit_form" type="submit" value="提交"/>
</form>
//2.servlet實現文件接收的功能
boolean isMultipart = ServletFileUpload.isMultipartContent(request);//判斷是否是表單文件類型

DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
List items = sfu.parseRequest(request);//從request得到所有上傳域的列表
for(Iterator iter = items.iterator();iter.hasNext();){
FileItem fileitem =(FileItem) iter.next(); if(!fileitem.isFormField()&&fileitem!=null){
//判讀不是普通表單域即是file
System.out.println("name:"+fileitem.getName());
}
}

3.擴展一下springboot
@RequestMapping("/xxx")
@ResponseBody
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(
file.getOriginalFilename())));
System.out.println(file.getName());
out.write(file.getBytes());
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return "上傳失敗," + e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return "上傳失敗," + e.getMessage();
}
return "上傳成功";
} else {
return "上傳失敗,因為文件是空的.";
}
}

❺ java表單提交裡面的文件上傳,用同步的方式好還是用非同步的好啊

你好,很高興回答你的問題。
這里做成非同步比較好。如果同步的話,遇到文件大的話,表單提交會很慢,體驗非常不好。
如果有幫助到你,請點擊採納。

❻ 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 可以獲取上傳的文件名。

❼ java上傳文件時用戶不提交表單,上傳的文件怎麼刪除

給個建議,臨時目錄的文件其實可以非同步刪除 ,

就是說不需要依賴用戶是否提交表單這個行為。

整個服務里需要有那麼一個線程或者進程管理這個目錄

這個線程需要有2塊功能

  1. 定時偵測目錄的文件數/目錄空間

  2. 給一個閥值,當目錄文件數、空間到怎樣的值 ,按文件的創建時間排序刪除最老的文檔,刪除數量可以給定一個百分比,當然你可以做一些過濾排除(比如創建時間到現在時間差少於半小時的不刪除)

熱點內容
termux如何搭建伺服器 發布:2024-10-10 10:18:05 瀏覽:736
中國石化的電話服務密碼是多少 發布:2024-10-10 10:16:46 瀏覽:41
婚紗店宣傳片視頻腳本 發布:2024-10-10 10:08:55 瀏覽:868
android寫入文件 發布:2024-10-10 10:08:11 瀏覽:434
怎麼打開文件夾的路徑 發布:2024-10-10 10:08:06 瀏覽:60
ec伺服器怎麼有小提示 發布:2024-10-10 10:08:04 瀏覽:494
我的世界迪士尼神奇寶貝伺服器地址 發布:2024-10-10 09:03:02 瀏覽:559
win7存儲並顯示 發布:2024-10-10 09:02:30 瀏覽:552
oracle資料庫導出 發布:2024-10-10 08:34:56 瀏覽:364
androidn特性 發布:2024-10-10 08:30:41 瀏覽:730