本文目錄一覽:
- 1、java中,上傳視頻時,視頻信息已經寫到數據庫了,但是指定位置卻沒有保存視頻怎麼辦?
- 2、java怎麼實現視頻上傳
- 3、用java怎麼實現從前端接收、處理並傳回視頻?
- 4、java web 項目如何實現視頻上傳然後播放功能
- 5、怎樣使用javaweb實現上傳視頻和下載功能?
java中,上傳視頻時,視頻信息已經寫到數據庫了,但是指定位置卻沒有保存視頻怎麼辦?
我都用struts帶的commons-fileUpload組件.smartUpload沒用過,但是我想你這句upfile.saveAs(upFilePath,File.SAVEAS_PHYSICAL);應該有返回值吧。如果接受到文件信息並寫入硬盤返回true什麼的。最後再判斷這個返回值,真寫入了文件後再把信息寫入數據庫。你寫入數據庫代碼直接放在上傳文件代碼後面,不管你文件傳成功沒有都把視頻信息寫入數據庫,這樣的結構本身就是不合理的。
java怎麼實現視頻上傳
方法/步驟
1
首先這裡jsp頁面的代碼 定義布局文件html的 如圖所示
這是js文件 打開一個新子窗口和向頁面中加載視頻播放標籤
上傳文件java代碼 獲取時間轉換成字符串作為上傳之後的文件名以及設置保存路徑和傳值到jsp頁面
這裡copy代碼 將一個源文件複製到新的目錄路徑下 如圖所示
這裡upload的jsp文件 用來選擇視頻文件並提交給後台
展示舊文件名新文件名和上傳後的文件目錄路徑 並將其傳給父頁面即index.jsp
upload.jsp文件提交的代碼經過java文件處理後通過控制轉到upload_video.jsp
代碼片段已經貼出來了,接下來我們開始演示界面 打開後如圖所示 點擊上傳按鈕
點擊選擇文件 找到要上傳的視頻文件 選中後選擇打開 然後點擊確定按鈕
這裡就是顯示新舊文件名和文件目錄路徑的界面 點擊確定將文件目錄傳給父文件界面
如圖所示 目錄路徑已經出給input中了 點擊播放按鈕 就會出現播放界面並且自動播放了
用java怎麼實現從前端接收、處理並傳回視頻?
1、接收前端上傳的文件
/**
* 接收多文件
*/
@RequestMapping(“/upload”)
public R uploadFile(@RequestParam MapString, Object params, HttpServletRequest request) {
// 複雜類型的request對象
MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
// 獲取文件名集合放入迭代器
IteratorString files = mRequest.getFileNames();
while (files.hasNext()) {
// 獲取上傳文件的對象
MultipartFile mFile = mRequest.getFile(files.next());
if (mFile != null) {
//原始文件名稱
String oldfile = mFile.getOriginalFilename();
//文件後綴
String suffix = oldfile.substring(oldfile.indexOf(‘.’), oldfile.length());
String suffix2 = oldfile.substring(oldfile.indexOf(‘.’)+1, oldfile.length());
/***************文件處理*********************/
}
}
}
2.接收前端上傳的文件
/**
* 接收附件
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value=”fileupload”,method=RequestMethod.POST)
public void springUpload(HttpServletRequest request) {
//將當前上下文初始化給 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
request.getSession().getServletContext());
//檢查form中是否有enctype=”multipart/form-data”
if(multipartResolver.isMultipart(request)) {
//將request變成多部分request
MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
//獲取multiRequest 中所有的文件名
Iterator iter=multiRequest.getFileNames();
while(iter.hasNext()){
//一次遍歷所有文件
MultipartFile file=multiRequest.getFile(iter.next().toString());
//最初上傳文件名的文件名
String oldFilename = file.getOriginalFilename();
//獲取初始文件名後綴
String fileSuffix = oldFilename.substring(oldFilename.lastIndexOf(“.”) +1);
/***************文件處理*********************/
}
}
3.接收前端上傳的文件
/**
* 接收文件
*
*
* @param model
* @return
* @throws IOException
* @throws IllegalStateException
*/
@RequestMapping(value = “imageupload”)
public void imageUpload(MultipartFile file) throws IllegalStateException, IOException {
//文件名稱
String realFileName = file.getOriginalFilename();
//文件後綴
String suffix = realFileName.substring(realFileName.lastIndexOf(“.”) + 1);
/***************文件處理*********************/
}
java web 項目如何實現視頻上傳然後播放功能
搞清楚兩個問題:上傳到自己的服務器還是第三方平台?播放器實用Flash還是H5播放器?
如果是上傳到自己的服務器,使用H5播放。那上傳視頻就和普通的文件上傳一樣。都是通過Http上傳。前端可以使用form表單上傳也可以使用ajax異步上傳。後台可以使用apache的Common-fileUpload工具來解析並保存文件。然後生成一個訪問路徑。將訪問路徑返回給前端的 video標籤的src屬性即可。通過幾個簡單的屬性或腳本就能控制播放。
如果是上傳到第三方平台,例如騰訊視頻、愛奇藝、優酷等。他們都有開發者平台或者開放平台。一般都有一些jar工具類或者模板案例提供給你的。你上傳之後,也有返迴路徑給你。這是一般都是嵌入它們的Flash插件。所以你只需要將那段Flash插件的HTML代碼放入你的網頁中就可以播放了。好處是,不需要自己存儲。不需要準備播放器。壞處是,可能有廣告。不是可能。是一定會有。
怎樣使用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 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獲取一個字節輸入流,將所有的請求正文信息讀取到,打印到控制台
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開發中的文件上傳功能,需要完成如下二步操作:
在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包的支持。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311065.html