当前位置:首页 » 文件传输 » java视频上传
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

java视频上传

发布时间: 2022-01-20 05:47:24

A. 用JAVA编程怎么实现视频的实时上传

你如果要捕获摄像头的话 建议用FLASH

B. java 项目开发 实现上传视频。

上传视频?只是上传的话,相当于,上传文件了
html如下
<form action="MultipartTestServlet" enctype="multipart/form-data" method="post">
<input type="text" name="username" /><br />
<input type="file" name="myfile" /><br/>
<input type="submit" />
</form>

java如下
MultipartTestServlet.java

package com.bug.servlet;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;

public class MultipartTestServlet extends HttpServlet {

public MultipartTestServlet() {
super();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("gbk");
RequestContext requestContext = new ServletRequestContext(request);

if(FileUpload.isMultipartContent(requestContext)){

DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File("c:/tmp/"));
ServletFileUpload upload = new ServletFileUpload(factory);
//upload.setHeaderEncoding("gbk");
upload.setSizeMax(2000000);
List items = new ArrayList();
try {
items = upload.parseRequest(request);
} catch (FileUploadException e1) {
System.out.println("文件上传发生错误" + e1.getMessage());
}

Iterator it = items.iterator();
while(it.hasNext()){
FileItem fileItem = (FileItem) it.next();
if(fileItem.isFormField()){
System.out.println(fileItem.getFieldName() + " " + fileItem.getName() + " " + new String(fileItem.getString().getBytes("iso8859-1"), "gbk"));
}else{
System.out.println(fileItem.getFieldName() + " " +
fileItem.getName() + " " +
fileItem.isInMemory() + " " +
fileItem.getContentType() + " " +
fileItem.getSize());

if(fileItem.getName()!=null && fileItem.getSize()!=0){
File fullFile = new File(fileItem.getName());
File newFile = new File("c:/temp/" + fullFile.getName());
try {
fileItem.write(newFile);
} catch (Exception e) {
e.printStackTrace();
}
}else{
System.out.println("文件没有选择 或 文件内容为空");
}
}

}
}
}

}
web.xml中加入

<servlet>
<servlet-name>MultipartTestServlet</servlet-name>
<servlet-class>com.bug.servlet.MultipartTestServlet</servlet-class>
</servlet>

需要的包到这三个地方下载
http://jakarta.apache.org/commons/fileupload/下载
http://jakarta.apache.org/commons/io/下载
在http://www.servlets.com/cos/下载

关于视频的播放,你只能自己再去找了

C. java 如何上传大文件 如 工具或是视频文件

要是实在你看不懂,我写了最简单的文件操作,是在本地之间复制文件。
思路是一样的,只不过文件路径变成网络路径,里面还有写文件和目录操作。
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*" %>

D. 怎样使用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

  • <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

  • <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

  • <html>

  • <head>

  • <title>MyJSP'index.jsp'startingpage</title>

  • </head>

  • <body>

  • <!--encType默认是application/x-www-form-urlencoded-->

  • <formaction="${pageContext.request.contextPath}/upload1"

  • method="POST"enctype="multipart/form-data">

  • <inputtype="text"name="content"><br>

  • <inputtype="file"name="f"><br><inputtype="submit"

  • value="上传">

  • </form>

  • </body>

  • </html>

  • 新建Upload1Servlet 路径:/upload1

    [java]view plain

  • packagecn.itcast.web.servlet;

  • importjava.io.IOException;

  • importjava.io.InputStream;

  • importjavax.servlet.ServletException;

  • importjavax.servlet.http.HttpServlet;

  • importjavax.servlet.http.HttpServletRequest;

  • importjavax.servlet.http.HttpServletResponse;

  • {

  • publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

  • throwsServletException,IOException{

  • //System.out.println("upload1servlet......");

  • //通过request获取一个字节输入流,将所有的请求正文信息读取到,打印到控制台

  • InputStreamis=request.getInputStream();

  • byte[]b=newbyte[1024];

  • intlen=-1;

  • while((len=is.read(b))!=-1){

  • System.out.println(newString(b,0,len));

  • }

  • is.close();

  • }

  • publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

  • throwsServletException,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包的支持。

E. java 怎么上传视频 上传到服务器 然后再读

找个JAVA文件上传的包,或者用Struts的方法,文件存在服务器上,把URL记住,直接在网页上加载就OK

F. java/web 如何编写视频上传的代码

一般视频文件不要存储到数据库中,因为存储的时候会以二进制流的形式存储进去。 视频文件通常上传后存储到文件服务器,如ftp服务器。 思路是这样:1.读取客户端提交的文件流;2.连接ftp服务器,将文件流还原生成视频文件。

G. java怎么实现视频上传

方法/步骤

  • 1

    首先这里jsp页面的代码 定义布局文件html的 如图所示

H. java中,上传视频时,视频信息已经写到数据库了,但是指定位置却没有保存视频怎么办

我都用struts带的commons-fileUpload组件.smartUpload没用过,但是我想你这句upfile.saveAs(upFilePath,File.SAVEAS_PHYSICAL);应该有返回值吧。如果接受到文件信息并写入硬盘返回true什么的。最后再判断这个返回值,真写入了文件后再把信息写入数据库。你写入数据库代码直接放在上传文件代码后面,不管你文件传成功没有都把视频信息写入数据库,这样的结构本身就是不合理的。

I. java实现网站视频的上传与播放求解,该怎么处理

转码可以用ffmpeg,为的是你播放器不用支持多种格式,之后播放,得看你用户端的需求,如果用http streaming,apache有mole,如果需要其他协议,则可能需要专业的streaming服务器,比如wowza,客户端如果是一般浏览器可以是flash player,如果是apple那些破玩意,他自己带的播放器,但协议不一样,需要服务端的支持,这个问题记得远标之前就讲过,记得好像是这样的,希望对你有所帮助!

J. java手机上传视频代码

你好

android客户端代码:
public class MainActivity extends Activity
{
private TextView uploadInfo;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

uploadInfo = (TextView) findViewById(R.id.upload_info);

uploadFile();
}

public void uploadFile()
{
//服务器端地址
String url = "http://192.168.0.108:8080/UploadFileServer/upload";
//手机端要上传的文件,首先要保存你手机上存在该文件
String filePath = Environment.getExternalStorageDirectory()
+ "/1/power.apk";

AsyncHttpClient httpClient = new AsyncHttpClient();

RequestParams param = new RequestParams();
try
{
param.put("file", new File(filePath));
param.put("content", "liucanwen");

httpClient.post(url, param, new AsyncHttpResponseHandler()
{
@Override
public void onStart()
{
super.onStart();

uploadInfo.setText("正在上传...");
}

@Override
public void onSuccess(String arg0)
{
super.onSuccess(arg0);

Log.i("ck", "success>" + arg0);

if(arg0.equals("success"))
{
Toast.makeText(MainActivity.this, "上传成功!", 1000).show();
}

uploadInfo.setText(arg0);
}

@Override
public void onFailure(Throwable arg0, String arg1)
{
super.onFailure(arg0, arg1);

uploadInfo.setText("上传失败!");
}
});

} catch (FileNotFoundException e)
{
e.printStackTrace();
Toast.makeText(MainActivity.this, "上传文件不存在!", 1000).show();
}
}
}
服务器端代码:
public class UploadFileServlet extends HttpServlet
{

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();

// 创建文件项目工厂对象
DiskFileItemFactory factory = new DiskFileItemFactory();

// 设置文件上传路径
String upload = this.getServletContext().getRealPath("/upload/");
// 获取系统默认的临时文件保存路径,该路径为Tomcat根目录下的temp文件夹
String temp = System.getProperty("java.io.tmpdir");
// 设置缓冲区大小为 5M
factory.setSizeThreshold(1024 * 1024 * 5);
// 设置临时文件夹为temp
factory.setRepository(new File(temp));
// 用工厂实例化上传组件,ServletFileUpload 用来解析文件上传请求
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);

// 解析结果放在List中
try
{
List<FileItem> list = servletFileUpload.parseRequest(request);

for (FileItem item : list)
{
String name = item.getFieldName();
InputStream is = item.getInputStream();

if (name.contains("content"))
{
System.out.println(inputStream2String(is));
} else if(name.contains("file"))
{
try
{
inputStream2File(is, upload + "\" + item.getName());
} catch (Exception e)
{
e.printStackTrace();
}
}
}

out.write("success");
} catch (FileUploadException e)
{
e.printStackTrace();
out.write("failure");
}

out.flush();
out.close();
}

// 流转化成字符串
public static String inputStream2String(InputStream is) throws IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = -1;
while ((i = is.read()) != -1)
{
baos.write(i);
}
return baos.toString();
}

// 流转化成文件
public static void inputStream2File(InputStream is, String savePath)
throws Exception
{
System.out.println("文件保存路径为:" + savePath);
File file = new File(savePath);
InputStream inputSteam = is;
BufferedInputStream fis = new BufferedInputStream(inputSteam);
FileOutputStream fos = new FileOutputStream(file);
int f;
while ((f = fis.read()) != -1)
{
fos.write(f);
}
fos.flush();
fos.close();
fis.close();
inputSteam.close();

}

}

追问

谢谢。
手机上传过来的东东是在哪个变量里面的。这个方法我有在网上找到,就是不知道要怎么用,看起来怎么觉得没有一个变量是跟客户端打交道了。
IOS的要怎么用

回答

首先你得在客户端选中一个文件把,apk iph啥的 然后点击“上传” 就请求了String url = "http://192.168.0.108:8080/UploadFileServer/upload"; 一个url对吧 然后就以流的方式把文件传输过去,你再用spring 类似这段代码 “@RequestMapping("/uploadPage")
@ResponseBody
public String uploadPage(Long id,@RequestParam("userfile") CommonsMultipartFile mFile){”,接下来就是里边具体内容的处理了,上面的例子是普通的servlet。如果用spring框架就套用这个。

追问

谢谢!
我有用Spring框架,不过还不是很明白你说的,能不能再说详细一点,还有这几个注解要导入什么包。Spring学的不是很多

我查过了,网上说是Struts2的过滤器过滤没了,所以List<FileItem> list = servletFileUpload.parseRequest(request);一直为空。然后把/*改成*.action就又报错了

回答

哦 我用的这是spring mvc struts2用的太早了,不记得了。反正中心思想就是提交流媒体到java服务端,能获得二进制流就行 剩下的就是你怎么运用框架了,具体你查查struts2的上传如何使用。