我都用struts帶的commons-fileUpload組件.smartUpload沒用過,但是我想你這句upfile.saveAs(upFilePath,File.SAVEAS_PHYSICAL);應(yīng)該有返回值吧。如果接受到文件信息并寫入硬盤返回true什么的。最后再判斷這個返回值,真寫入了文件后再把信息寫入數(shù)據(jù)庫。你寫入數(shù)據(jù)庫代碼直接放在上傳文件代碼后面,不管你文件傳成功沒有都把視頻信息寫入數(shù)據(jù)庫,這樣的結(jié)構(gòu)本身就是不合理的。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了三門峽免費建站歡迎大家使用!
文件上傳就是將客戶端資源,通過網(wǎng)路傳遞到服務(wù)器端。
因為文件數(shù)據(jù)比較大,必須通過文件上傳才可以完成將數(shù)據(jù)保存到數(shù)據(jù)庫端的操作。
文件上傳的本質(zhì)就是IO流操作。
演示:文件上傳應(yīng)該如何操作?
瀏覽器端:
1.method=post 只有post才可以攜帶大數(shù)據(jù)
2.必須使用input type='file' name='f'要有name屬性
3.encType="multipart/form-data"
服務(wù)器端:
request對象是用于獲取請求信息。
它有一個方法 ?getInputStream(); 可以獲取一個字節(jié)輸入流,通過這個流,可以讀取到
所有的請求正文信息.
文件上傳原理:
瀏覽器端注意上述三件事,在服務(wù)器端通過流將數(shù)據(jù)讀取到,在對數(shù)據(jù)進行解析.
將上傳文件內(nèi)容得到,保存在服務(wù)器端,就完成了文件上傳。
注意:在實際開發(fā)中,不需要我們進行數(shù)據(jù)解析,完成文件上傳。因為我們會使用文件上傳的工具,它們已經(jīng)封裝好的,提供API,只要調(diào)用它們的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);
}
}
在瀏覽器端訪問信息如下:
后臺打印正文信息如下:
文件上傳概述
實現(xiàn)web開發(fā)中的文件上傳功能,需要完成如下二步操作:
在web頁面中添加上傳輸入項。
在Servlet中讀取上傳文件的數(shù)據(jù),并保存在服務(wù)器硬盤中。
如何在web頁面中添加上傳輸入項?
input ?type="file"標簽用于在web頁面中添加文件上傳輸入項,設(shè)置文件上傳輸入項時注意:
1、必須設(shè)置input輸入項的name屬性,否則瀏覽器將不會發(fā)送上傳文件的數(shù)據(jù)。
2、必須把form的encType屬性設(shè)為multipart/form-data 設(shè)置該值后,瀏覽器在上傳文件時,并把文件數(shù)據(jù)附帶在http請求消息體內(nèi),并使用MIME協(xié)議對上傳的文件進行描述,以方便接收方對上傳數(shù)據(jù)進行解析和處理。
3、表單的提交方式要設(shè)置為post。
如何在Servlet中讀取文件上傳數(shù)據(jù),并保存到本地硬盤中?
Request對象提供了一個getInputStream方法,通過這個方法可以讀取到客戶端提交過來的數(shù)據(jù)。但由于用戶可能會同時上傳多個文件,在servlet端編程直接讀取上傳數(shù)據(jù),并分別解析出相應(yīng)的文件數(shù)據(jù)是一項非常麻煩的工作,示例。
為方便用戶處理文件上傳數(shù)據(jù),Apache 開源組織提供了一個用來處理表單文件上傳的一個開源組件( Commons-fileupload ),該組件性能優(yōu)異,并且其API使用極其簡單,可以讓開發(fā)人員輕松實現(xiàn)web文件上傳功能,因此在web開發(fā)中實現(xiàn)文件上傳功能,通常使用Commons-fileupload組件實現(xiàn)。
使用Commons-fileupload組件實現(xiàn)文件上傳,需要導(dǎo)入該組件相應(yīng)支撐jar包:Commons-fileupload和commons-io。commo-io不屬于文件上傳組件的開發(fā)jar文件,但Commons-fileupload組件從1.1版本開始,它工作時需要commons-io包的支持。
方法/步驟
1
首先這里jsp頁面的代碼 定義布局文件html的 如圖所示
這是js文件 打開一個新子窗口和向頁面中加載視頻播放標簽
上傳文件java代碼 獲取時間轉(zhuǎn)換成字符串作為上傳之后的文件名以及設(shè)置保存路徑和傳值到j(luò)sp頁面
這里copy代碼 將一個源文件復(fù)制到新的目錄路徑下 如圖所示
這里upload的jsp文件 用來選擇視頻文件并提交給后臺
展示舊文件名新文件名和上傳后的文件目錄路徑 并將其傳給父頁面即index.jsp
upload.jsp文件提交的代碼經(jīng)過java文件處理后通過控制轉(zhuǎn)到upload_video.jsp
代碼片段已經(jīng)貼出來了,接下來我們開始演示界面 打開后如圖所示 點擊上傳按鈕
點擊選擇文件 找到要上傳的視頻文件 選中后選擇打開 然后點擊確定按鈕
這里就是顯示新舊文件名和文件目錄路徑的界面 點擊確定將文件目錄傳給父文件界面
如圖所示 目錄路徑已經(jīng)出給input中了 點擊播放按鈕 就會出現(xiàn)播放界面并且自動播放了
網(wǎng)頁題目:java上傳視頻成功代碼 java實現(xiàn)上傳視頻
URL地址:http://jinyejixie.com/article20/hejico.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、電子商務(wù)、服務(wù)器托管、關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)