我都用struts帶的commons-fileUpload組件.smartUpload沒用過,但是我想你這句upfile.saveAs(upFilePath,File.SAVEAS_PHYSICAL);應該有返回值吧。如果接受到文件信息并寫入硬盤返回true什么的。最后再判斷這個返回值,真寫入了文件后再把信息寫入數據庫。你寫入數據庫代碼直接放在上傳文件代碼后面,不管你文件傳成功沒有都把視頻信息寫入數據庫,這樣的結構本身就是不合理的。

網站建設哪家好,找成都創(chuàng)新互聯!專注于網頁設計、網站建設、微信開發(fā)、小程序制作、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯還提供了三門峽免費建站歡迎大家使用!
文件上傳就是將客戶端資源,通過網路傳遞到服務器端。
因為文件數據比較大,必須通過文件上傳才可以完成將數據保存到數據庫端的操作。
文件上傳的本質就是IO流操作。
演示:文件上傳應該如何操作?
瀏覽器端:
1.method=post 只有post才可以攜帶大數據
2.必須使用input type='file' name='f'要有name屬性
3.encType="multipart/form-data"
服務器端:
request對象是用于獲取請求信息。
它有一個方法 ?getInputStream(); 可以獲取一個字節(jié)輸入流,通過這個流,可以讀取到
所有的請求正文信息.
文件上傳原理:
瀏覽器端注意上述三件事,在服務器端通過流將數據讀取到,在對數據進行解析.
將上傳文件內容得到,保存在服務器端,就完成了文件上傳。
注意:在實際開發(fā)中,不需要我們進行數據解析,完成文件上傳。因為我們會使用文件上傳的工具,它們已經封裝好的,提供API,只要調用它們的API就可以完成文件上傳操作.我們使用的commons-fileupload,它是apache提供的一套開源免費的文件上傳工具。
代碼演示文件上傳的原理:
在WebRoot下新建upload1.jsp
[html]?view plain?copy
%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%
!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"
html
head
titleMy?JSP?'index.jsp'?starting?page/title
/head
body
!--?encType?默認是application/x-www-form-urlencoded?--
form?action="${pageContext.request.contextPath?}/upload1"
method="POST"?enctype="multipart/form-data"
input?type="text"?name="content"br
input?type="file"?name="f"br?input?type="submit"
value="上傳"
/form
/body
/html
新建Upload1Servlet ?路徑:/upload1
[java]?view plain?copy
package?cn.itcast.web.servlet;
import?java.io.IOException;
import?java.io.InputStream;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
public?class?Upload1Servlet?extends?HttpServlet?{
public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
//?System.out.println("upload1?servlet......");
//?通過request獲取一個字節(jié)輸入流,將所有的請求正文信息讀取到,打印到控制臺
InputStream?is?=?request.getInputStream();
byte[]?b?=?new?byte[1024];
int?len?=?-1;
while?((len?=?is.read(b))?!=?-1)?{
System.out.println(new?String(b,?0,?len));
}
is.close();
}
public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
doGet(request,?response);
}
}
在瀏覽器端訪問信息如下:
后臺打印正文信息如下:
文件上傳概述
實現web開發(fā)中的文件上傳功能,需要完成如下二步操作:
在web頁面中添加上傳輸入項。
在Servlet中讀取上傳文件的數據,并保存在服務器硬盤中。
如何在web頁面中添加上傳輸入項?
input ?type="file"標簽用于在web頁面中添加文件上傳輸入項,設置文件上傳輸入項時注意:
1、必須設置input輸入項的name屬性,否則瀏覽器將不會發(fā)送上傳文件的數據。
2、必須把form的encType屬性設為multipart/form-data 設置該值后,瀏覽器在上傳文件時,并把文件數據附帶在http請求消息體內,并使用MIME協(xié)議對上傳的文件進行描述,以方便接收方對上傳數據進行解析和處理。
3、表單的提交方式要設置為post。
如何在Servlet中讀取文件上傳數據,并保存到本地硬盤中?
Request對象提供了一個getInputStream方法,通過這個方法可以讀取到客戶端提交過來的數據。但由于用戶可能會同時上傳多個文件,在servlet端編程直接讀取上傳數據,并分別解析出相應的文件數據是一項非常麻煩的工作,示例。
為方便用戶處理文件上傳數據,Apache 開源組織提供了一個用來處理表單文件上傳的一個開源組件( Commons-fileupload ),該組件性能優(yōu)異,并且其API使用極其簡單,可以讓開發(fā)人員輕松實現web文件上傳功能,因此在web開發(fā)中實現文件上傳功能,通常使用Commons-fileupload組件實現。
使用Commons-fileupload組件實現文件上傳,需要導入該組件相應支撐jar包:Commons-fileupload和commons-io。commo-io不屬于文件上傳組件的開發(fā)jar文件,但Commons-fileupload組件從1.1版本開始,它工作時需要commons-io包的支持。
方法/步驟
1
首先這里jsp頁面的代碼 定義布局文件html的 如圖所示
這是js文件 打開一個新子窗口和向頁面中加載視頻播放標簽
上傳文件java代碼 獲取時間轉換成字符串作為上傳之后的文件名以及設置保存路徑和傳值到jsp頁面
這里copy代碼 將一個源文件復制到新的目錄路徑下 如圖所示
這里upload的jsp文件 用來選擇視頻文件并提交給后臺
展示舊文件名新文件名和上傳后的文件目錄路徑 并將其傳給父頁面即index.jsp
upload.jsp文件提交的代碼經過java文件處理后通過控制轉到upload_video.jsp
代碼片段已經貼出來了,接下來我們開始演示界面 打開后如圖所示 點擊上傳按鈕
點擊選擇文件 找到要上傳的視頻文件 選中后選擇打開 然后點擊確定按鈕
這里就是顯示新舊文件名和文件目錄路徑的界面 點擊確定將文件目錄傳給父文件界面
如圖所示 目錄路徑已經出給input中了 點擊播放按鈕 就會出現播放界面并且自動播放了
網頁題目:java上傳視頻成功代碼 java實現上傳視頻
URL地址:http://chinadenli.net/article20/hejico.html
成都網站建設公司_創(chuàng)新互聯,為您提供用戶體驗、電子商務、服務器托管、關鍵詞優(yōu)化、網站收錄、微信公眾號
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯